概要
【PHP】iPhone safari等でcssの更新がなかなか反映されない現象に対する対策方法について紹介。スマートフォンキャッシュ対策のパラメータ付与をファイル更新時間で付与します。※stat failed 対策済み
用途
- コーディング中にcssの更新を行なったがスマートフォン実機の場合だけ反映されない事象への対応方法。
- iPhone等の「履歴を削除」よりも実機での修正反映を確認する時間を短縮できる。
内容
- css等のファイル参照パスの末尾にタイムスタンプ(timestamp)をパラメータ付与することでキャッシュ対策とする。
- 本記事では付与するパラメータをファイル更新時間を取得して付与する。
- PHP版の1パターンを用意。
- filemtime()がstat failedになってしまう場合にも対応済み。
注意事項
- CSSファイル以外のimgファイルやjsファイルにも使用可能。
- filemtime()は単純な使用の場合、stat failedを生じることがあり注意が必要。
検証ブラウザ
- Microsoft Edge
- Google Chrome(最新)
- Safari(最新)
- Firefox(最新)
実装方法
ローカル環境にコードを移設した際に動作しない場合はこちら。(トラブルシューティングページへ)