2018.02.12

2018.02.14

コーディング

制作時に便利なcssやjsへのクエリー文字列の付け方

時間が更新されていくイメージ

Webサイトの制作時にcssやjsを編集後、テスト環境などで動作チェックをする際に、編集したはずのところが変わってなくてさんざん首をひねったがキャッシュのせいだった…、なんてことはコーダーあるあるだと思います。cssやjsのキャッシュ読み込み対策にはクエリー文字列を使う方法がありますが、今回はその記述に一工夫する方法を紹介します。

クエリー文字列を動的パラメーターで自動更新

以下のように記述することで、cssやjsファイルの更新日時をphpでクエリー部分へ自動的に反映し、ファイルに更新があった場合はクエリー文字列の効果でファイルを読み直す仕組みを実現できます。

<link href="/css/style.css?<?php = filemtime( "{$_SERVER['DOCUMENT_ROOT']}/css/style.css" ) ?>" rel="stylesheet" >

サーバ上でのパスを記述する必要があるのが注意点ですが、スーパーリロード忘れや、一部スマートフォンの強力なキャッシュ機能に対して有効な対策になります。

また、phpのtime関数を利用する方法もあります。time関数は出力内容を編集できるので、秒まで出力することでファイル更新の有無に関わらず毎回ファイルを読み直す、強力なキャッシュ対策として設定することができます。

<link href="/css/style.css<?php echo time(); ?>" rel="stylesheet" >

ページを表示するたび読み込みが発生するのでテスト環境などでの制作時に利用するのには便利ですが、本番公開時に導入するかはファイルの大きさや読み込みスピードを観察しながら検討しましょう。

まとめ

cssのパラメーターやjsの記述を微調整しながらブラウザでチェックする工程を繰り返していると、キャッシュによるファイルの更新されなさや、都度都度のスーパーリロード操作も、効率に影響してしまいます。制作時のチェック効率アップに利用してみてください。

SHARE

この記事の筆者

Web&Soundクリエイター 田村 培修

Web&Soundクリエイター 田村 培修

楽器とパソコンのキーボードを使い分ける当社のマルチクリエイター。e-sportsに興味津々であれこれ情報を収集中。

WEBSITE DESIGN REQUEST

ホームページ制作・リニューアルの
ご相談はお気軽に

TEL 06-6537-9941 平日 9:00〜19:00

〒550-0012 大阪府大阪市西区立売堀2-5−41

ホームページ制作を相談する