Frage

Ich bin vertraut mit Tools wie Kolbenmanometer für CSS nicht in den Einsatz in Ihrer Rails-Anwendung zu finden, aber tut etwas exist für Bilder? Ich bin mit einem massiven Verzeichnis von Vermögenswerten in einem Projekt sitze mit einer Vielzahl von Designern aus der Arbeit und ich versuche, das Fett in diesem Projekt zu trimmen. Es ist vor allem ein Schmerz, wenn Vermögenswerte in unsere CDN zu bewegen.

Alle Gedanken?

War es hilfreich?

Lösung

Es hängt stark von dem Code der Bilder verwenden. Es ist immer möglich, dass ein Dateiname (durch Verketten zwei Werte oder String-Substitution usw.) berechnet wird so ein einfach nach Dateinamen greppen ist nicht unbedingt ausreichend.

Sie könnten versuchen, wget laufen (wahrscheinlich bereits installiert, wenn Sie einen Linux-Rechner haben, sonst http : //users.ugent.be/~bpuype/wget/ ) Ihre gesamte Website spiegeln. Tun Sie dies auf dem gleichen Rechner oder im Netzwerk, wenn Sie können, es wird Ihre gesamte Website kriechen und alle die Bilder greifen

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

Wenn Sie das getan haben, dann werden Sie eine zweite Kopie von Ihrer Website Hierarchie haben keine Bilder enthalten, die aktiv verbunden sind, von einer Seite erreichbar Crawlen Ihrer Website. Sie können Ihr Quellbildverzeichnis dann Backup, und ersetzen Sie es mit wget Kopie. gif / jpg / png-Dateien im Zusammenhang nächste Ihre Log-Dateien für 404 Monitor. Ich hoffe, das hilft.

Andere Tipps

Finding unsed Bilder sollten als CSS einfacher sein.

Finden Sie einfach * .jpg * .png * gif mit glob, setzen Sie diese Dateinamen Wörterbuch oder Array und finden diese Dateinamen Againt html, css, js Dateien entfernen Dateinamen, wenn gefunden und Sie werden nicht verwendete Liste, und diese Bilder bewegen in einem anderen Ordner mit dem gleichen Verzeichnisstruktur (wird es gut sein für die Wiederherstellung für den Fall der Fälle)

Im Grunde so, und natürlich für die Dateinamen, die verschlüsselter / codierter / obcuscated wird nicht funktionieren.

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: Ich habe fileutils, weil normale makedirs und mv sind nicht in meiner Windows-Version von Ruby arbeitet

Und ich bin bei Rubin nicht gut, so bitte überprüfen Sie es, bevor Sie es benutzen.

Hier ist die Probenergebnisse I in Stammordner von Proben Schienen lief Ordner in meinem Fenster

---\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

Wenn Sie Ihre Bild-URLs kommen oft aus vielen berechnet / verketteten Strings und andere Sachen hart in Ihrem Quellcode programmatisch zu verfolgen und Ihre Anwendung ist in den harten Einsatz, könnten Sie versuchen, eine weiche „Honeypot“ Ansatz wie folgt aus:

  • alle Verschieben Sie die Vermögenswerte in einem anderen Verzeichnis, z.B. /attic
  • Stellen Sie ein leeres Verzeichnis /images (oder was Ihr Asset-Verzeichnis genannt wird)
  • eine .htaccess Datei einrichten (wenn Sie auf Apache natürlich sind), die unter Verwendung der -f Flagge, Umleitungen alle Anfragen an nicht vorhandene Bilddateien zu einem Skript
  • Das Skript kopiert die angeforderte Datei aus dem /attic in das /images Verzeichnis und zeigt sie
  • Die nächste Anfrage zu diesem Bild wird direkt auf das Bild gehen, weil sie jetzt existiert

Nach einiger Zeit und eine ausreichende Nutzung, die alle erforderlich Bilder auf das Vermögen Verzeichnis kopiert werden sollte.

Es ist ein „weicher“ Ansatz natürlich, da ein Dialog / Situation nicht geöffnet wurde, konnte / eingegeben / verwendet von jedem Benutzer während dieser Zeit (Dinge wie Fehlermeldung Symbole zum Beispiel). Aber es wird alle verwendeten Dateien erkennen, unabhängig davon, wo sie angefordert sind, und könnte helfen, aussortieren viel der nicht mehr benötigten Dateien.

Wenn Sie Ihre Datei-Manager unterstützt, versuchen Sie, Ihre Bilder Verzeichnis durch die Sortieren von Dateien ‚des letzten Zugriffs‘ date. Dateien, die in einer langen Zeit zugegriffen haben, höchstwahrscheinlich nicht werden nicht mehr verwendet.

In die gleiche Richtung, können Sie auch Filter oder grep durch Ihren Webserver-Logs und machen Sie eine Liste der Bilddateien, dass es in den letzten Monaten gedient hat. Alle Bilder, die nicht in dieser Liste sind wahrscheinlich nicht verwendet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top