Pregunta

Estoy familiarizado con herramientas como Peso muerto para encontrar CSS no están en uso en su aplicación Rails, pero existe nada para las imágenes? Estoy sentado en un proyecto con un directorio masivo de los activos de trabajar con una variedad de diseñadores y yo estoy tratando de recortar la grasa en este proyecto. Es especialmente un dolor al mover los activos de nuestra CDN.

¿Alguna idea?

¿Fue útil?

Solución

Depende en gran medida del código usando las imágenes. Siempre es posible que un nombre de archivo se calcula (mediante la concatenación de dos valores o cadena de sustitución, etc.) por lo que un simple grepping por nombre de archivo no es necesariamente suficiente.

Usted podría intentar correr wget (probablemente ya instalado si tienes una máquina Linux, de lo contrario http : //users.ugent.be/~bpuype/wget/ ) a reflejar toda su sitio. Para ello, en la misma máquina o en la red si se puede, que va a arrastrarse toda su sitio y agarrar todas las imágenes

# mirror mysite.com accepting only jpg, png and gif files
wget -A jpg,png,gif --mirror www.mysite.com

Una vez que hayas hecho esto, usted va a tener una segunda copia de la jerarquía del sitio que contiene las imágenes que están vinculados activamente a cualquier página accesible por rastreo de su sitio. A continuación, puede copia de seguridad de su directorio de imagen de origen, y reemplazarla con la copia de wget. A continuación, supervisar los archivos de registro de 404 de referente a los archivos GIF / JPG / PNG. Esperamos que ayuda.

Otros consejos

Búsqueda de imágenes unsed debería ser más fácil de CSS.

Sólo tiene que encontrar * .jpg * * .png gif con pegote, puso esos nombres de archivo de diccionario o matriz y encontrar a los nombres de archivo againt html, css, js, eliminar el nombre de archivo si lo encuentra y obtendrá la lista sin uso, y esas imágenes se mueven a otra carpeta con el mismo estructura de directorios (será bueno para la restauración de por si acaso)

Básicamente este tipo, y por supuesto para los nombres de archivo que cifrado / codificado / obcuscated no va a funcionar.

require "fileutils"

img=Dir.glob("**/*.jpg")+Dir.glob("**/*.png")+Dir.glob("**/*.gif")
data=Dir.glob("**/*.htm*")+Dir.glob("**/*.css")+Dir.glob("**/*.js")

puts img.length.to_s+" images found & "+data.length.to_s+" files found to search against"

content=""
data.each do |f|
    content+=File.open(f, 'r').read   
end

img.each do |m|
    if not content=~ Regexp.new("\\b"+File.basename(m)+"\\b")
        FileUtils.mkdir_p "../unused/"+File.dirname(m)
        FileUtils.mv m,"../unused/"+m
        puts "Image "+m+" moved to ../unused/"+File.dirname(m)+" folder"
    end
end

PS: He utilizado fileutils, porque makedirs normal y mv no son obras en mi versión de las ventanas de rubí

Y yo no soy bueno en rubí, así que por favor vuelva a comprobar antes de que lo utilice.

Este es el resultado de la muestra me encontré en la carpeta raíz de la muestra carriles carpeta en mis ventanas

---\ruby>ruby img_coverage.rb
5 images found & 12 files found to search against
Image depot/public/images/test.jpg moved to ../unused/depot/public/images folder

Si las URL de imagen a menudo provienen de muchas cadenas computados / concatenados y otras cosas difíciles de rastrear mediante programación dentro de su código fuente, y su aplicación está en uso pesado, usted podría intentar un enfoque suave "trampa" de esta manera:

  • Mover todos los activos en un directorio diferente, por ejemplo, /attic
  • Establecer un directorio de /images vacía (o lo que su directorio activo se llama)
  • Configurar un archivo .htaccess (si estás en Apache, por supuesto) que, utilizando la bandera -f, redirecciones todas las peticiones a los archivos de imagen no existentes a una secuencia de comandos
  • El script copia el archivo solicitado de la /attic en el directorio /images y los muestra
  • siguiente petición a esa imagen irá directamente a la imagen, ya que existe ahora

Después de algún tiempo y el uso suficiente, toda necesaria imágenes debería haber sido copiado en el directorio activo.

Es un enfoque "suave", por supuesto, debido a un cuadro de diálogo / situación no podría haber sido abierta / entrado / utilizado por cualquier usuario durante ese tiempo (cosas como símbolos de mensajes de error, por ejemplo). Pero va a reconocer todos los archivos que se utilizan, sin importar dónde se ruega a, y podría ayudar a resolver gran parte de los archivos que no sean necesarios.

Si el administrador de archivos soporta, intentar clasificar el directorio de imágenes de 'último acceso' fecha de los archivos. Los archivos que no se ha accedido en mucho tiempo más probable es que no se usan por más tiempo.

En la misma línea, también puede filtrar o grep través de los registros de su servidor web y hacer una lista de los archivos de imagen que ha servido en los últimos meses. Las imágenes que no están en esta lista son probablemente sin utilizar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top