Das Finden von unsed Bildern sollte einfacher als CSS sein.
Finden Sie einfach * .jpg * .png * gif mit glob, legen Sie diese Dateinamen zu Wörterbuch oder Array und finden Sie diese Dateinamen gegen HTML, CSS, JS-Dateien, entfernen Sie den Dateinamen, wenn Sie gefunden werden und Sie unbenutzte Liste, und verschieben Sie diese Bilder in einen anderen Ordner mit der gleichen Verzeichnisstruktur (Es wird für die Wiederherstellung nur für den Fall gut sein)
Grundsätzlich so, und natürlich für die Dateinamen, die verschlüsselt/verschlüsselt/obskuriert 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
nicht Werke sind in meiner Windows-Version von Ruby
Und ich bin nicht gut bei Rubin, so verdoppeln Sie es überprüfen, bevor Sie es benutzen. Hier
ist die Probenergebnisse I in Stammordnern von Proben Schienen liefen 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
wget konnte nicht die gesamte Website, verschiedene Seiten hinter Authentifizierung durchsuchen. Es muss eine Lösung sein, die mit Hilfe von Rails selbst erstellt wurde, da wir seine Helfer verwenden, um die Bilder an erster Stelle anzuzeigen. – mwilliams
Abgesehen davon ist die untenstehende bta-Lösung in Bezug auf die Zeit für den letzten Zugriff in Kombination mit der Verwendung von "wget -mirror" eine gute Lösung, um sicherzustellen, dass Ihre gesamte Website gecrawlt und alle verwendeten Bilder aktualisiert werden. Atime wird jedoch oft deaktiviert, um die Leistung zu steigern. Daher müssen Sie es möglicherweise aktivieren, damit diese Lösung funktioniert. – meagar