静的ファイルの縮小と圧縮
mavenのプラグインを使おうかと思ってたけど、
・ちょっとした修正でもビルドが必要になる
・mavenの標準出力が(個人的に)いまいちわかりにくいので、
失敗したとき発見しにくい
・pomに外部のリポジトリを書きたくない
とか、いろいろ思って、
mavenのビルドとは切り分けることにした。
で、
縮小にはY!のyuicompressorがメジャーっぽいので使ってみることに。
http://developer.yahoo.com/yui/compressor/
javaの動作環境と上記で入手できるjarさえあればおk。
以下、$target_dir以下の*.$typeを縮小するスクリプト書いてみた。
#!/bin/sh target_dir=$1 type=$2 yuicompressor=/usr/local/yuicompressor/build/yuicompressor-2.4.2.jar java_command=/usr/local/java/bin/java case $type in "css") option=' --type css --charset UTF-8' ;; "js") option=' --type js --charset UTF-8' ;; *) echo "css | js" exit 1 ;; esac file_list=`find $target_dir -name *.$type` for file in $file_list do $java_command -jar $yuicompressor -v $option $file -o $file done
同じ要領で、こっちは圧縮するやつー。
#!/bin/sh target_dir=$1 type=$2 gzip_command=/bin/gzip file_list=`find $target_dir -name *.$type` for file in $file_list do $gzip_command -9 -c $file > $file.gz touch -r $file $file.gz done
これを
デプロイ時にcss、jsディレクトリに対して
実行するようにしてみた。
今、
実際にapache配下においてみて
gzip毎に正しいファイルを返そうとしてるけど、
ちょっと迷走しすぎてるので、
また今度やる(´-ω-`)