サーバー上で参照されていないすべての画像を見つける方法 (おそらく perl) が必要です。私は自分の Web サイトで画像/アイコンの統合を行っていますが、手動で 1 つずつ選別するには多すぎます。参照されなくなった画像のリストまたは URL の配列を出力して、それらを削除できるようにするには、このクエリが必要です。
考え?
静的 Web サイトの場合、HTML::TokeParser::SimpleをFile::Findと組み合わせて使用して、コンテンツ ファイル内のすべてのタグのsrc
属性を抽出できます。( を参照)を<img>
使用してすべてのコンテンツをコピーすると、作業が楽になります。さらに、おそらくCSS::DOMを使用してファイルを解析したいと思うでしょう。wget
mirror
man wget
.css
次に、すべての画像ファイルのソースをクロールし、ファイル システム内のパスを Web サイトの URL にマッピングします。前のプロセスで取得した画像 URL のリストに含まれていないものを確認します。perlfaq4が役に立つかもしれません。
私がすることは、すべての画像のリストを作成することです。すべてのドキュメントを解析して画像を取得します。リストを比較します。
簡単にするために、すべての画像には一意の名前が付けられており、パスは必要ないと仮定しています。また、すべてのコードが使用されていると想定しています。
Bash の場合 (多くの微調整が必要であり、テストされていません)
cd into image directory
find path_to_image_directory -name "*.jpg" | grep -o "\b\w*\.jpg" | sort -u > all_pics.txt
# do simular for gif and png
grep -rio "\b\w*\.gif\|.png|.gif\b" path_to_source | sort -u > used_pics.txt
grep -Fxv -f all_pics.txt used_pics.txt > unused_images.txt
while read line
do
find . -name $line -exec rm -rf {} \;
done < unused_images.txt