[JS][jQuery]CSSの読み込みに日付を追加

最終更新: 2019/01/24/公開: 2017/12/27
この記事は 2017年12月27日 に投稿されました。
内容が古いかもしれません。ご注意ください。
※最後に更新されたのは 2019年1月24日 です。

きっかけ

最近iPhoneのSafari、キャッシュが全然消えない。CSS変更しても反映されない。一応URLをコピーして新しいタブで開き直すと反映されたりするけど、Basic認証かかったディレクトリのファイルなんかそんなことやってられないのでCSSへJSで日付を追加した。
PHPだともうちょっと簡単かもしれないがHTML普通に書いてる時に使いたいのでjQueryで適当に書いた。

本題

//css読み込みに日付付加
var date_obj = new Date();
var times = [
  String(date_obj.getFullYear()),
  String(date_obj.getMonth()+1),
  String(date_obj.getDate()),
  String(date_obj.getMinutes()),
  String(date_obj.getSeconds())
];
var timeNum = times[0]+times[1]+times[2]+times[3]+times[4];

$("link[href$='css']").each( function(){
  var filename = $(this).attr("href");
  var pathWithTime = filename.replace( /.css/g, '.css?v='+timeNum );
  $(this).attr("href",pathWithTime);
});

こう。もっといいやり方が…とか思うけどとりあえず付いたら良かったので。
即定型文登録。