Posted at

S3をstatic webserver にしてるとき、javascript がキャッシュされる問題


htmlから読み込んでるjsファイルが更新されない問題


こんな場合


  • S3で静的WEBホスティングしてる

  • シェルコマンド(bash)使ってる

  • AWS-CLI でcpコマンドしてローカルのディレクトリのファイルと同期とってる

  • JSのキャッシュでブラウザからみると更新が反映されない

  • さっき更新したやつだけ反映したい

覚えておくこと:


--cache-control privete


(メタ情報 cache-control :privete) をつけると、キャッシュされない

no-cache,no-stroe より楽

注意すること:

別の方法で上書きするとメタ情報はなくなる


up.sh

#-- /directory_name にある5分以内に更新したファイルを${copyto_s3_location}にアップロードする

while read file `find /directory_name/ -type f -cmin -5`
do

ext=${file##*.}

if [ 'js' = "${ext}" ] ; then
aws s3 cp \
--content_type application/javascript \
--cache-control privete \
${file} ${copyto_s3_location}
else
aws s3 cp ${file} ${copyto_s3_location}
fi

done