1

すべての HTML、CSS、Javascript を 、 などのファイルに処理する Jekyll サイトがあり*.css.gzます*.js.gz

問題は、gz拡張子を削除して、ファイルを S3 にアップロードし、GZip を使用して提供できるようにする必要があることです。

私のメイクファイルには、これがあります:

find _site/ -iname '*.html' -exec gzip -n {} +
find _site/ -iname '*.js' -exec gzip -n {} +
find _site/ -iname '*.css' -exec gzip -n {} +
find _site -iname '*.gz' -exec rename 's/\.gz$//i' {} +

最後の行は次のように失敗します。

find: rename: No such file or directory
make: *** [all] Error 1

コマンドを実行すると、find _site -iname '*.gz'すべての GZipped ファイルが正しく出力され、すべて存在することがわかります。

エラーを防ぐために、拡張機能を削除するか、上記のコマンドを変更するにはどうすればよいですか?

Makefile のスクリプトのソース: http://fusion.dominicwatson.co.uk/2011/09/adding-gzip-to-my-jeyll-setup.html

4

2 に答える 2

3

バックアップを作成してから、これを試してください:

for f in `find _site -iname '*.gz'`; do
  mv $f ${f%.gz} 
done

これにより、( find コマンドから)すべてのファイルがループされ、mv. ${f%.gz}ファイル名から .gz サフィックスを削除します。

于 2012-12-30T23:45:14.010 に答える
0

findを実行できませんrename。おそらく、システムにインストールされていないためです。

それが機能するには、その実装が必要です(たとえばprename、またはapt-get install perlDebian派生物を使用している場合)。

于 2012-12-30T23:48:08.547 に答える