ユーザーのブラウザに保存されているJavaScript、CSS、画像のキャッシュを削除するにはどうすればいいですか?

ユーザーのブラウザに保存されているJavaScript、CSS、画像のキャッシュを削除するにはどうすればいいですか?

ウェブサイトの開発やテスト公開時には、静的リソース(JavaScript、CSS、画像など)が頻繁に更新されるため、ブラウザのキャッシュにより古いファイルが表示されてしまう問題がよく起きます。 これを防ぐために「バージョン番号(キャッシュバスター)」をURLの末尾に付けて、ブラウザに「これは新しいファイルだ」と認識させ、必ず最新のリソースを読み込ませるのが一般的な対策です。

方法の例

HTMLや静的ファイルでのバージョン番号付与

<link rel="stylesheet" href="style.css?v=20230604">
<script src="script.js?v=20230604"></script>
<img src="image.jpg?v=20230604" alt="">

「?v=」の部分は任意で、「?ver=」「?version=」など何でも良い。日付やバージョン番号を変えることでブラウザが新しいファイルと認識。

JavaScriptを使い動的にタイムスタンプを付与(あまり推奨されない)

<script>
document.write('<link rel="stylesheet" href="style.css?v=' + new Date().getTime() + '">');
document.write('<script src="script.js?v=' + new Date().getTime() + '"><\/script>');
</script>

常に現在のタイムスタンプを使うため毎回違うURLになり、キャッシュを無効化できる。ただし、キャッシュ効果がほぼゼロになるためパフォーマンスは悪化。

WordPressでのバージョン番号設定

wp_enqueue_style('style', get_stylesheet_directory_uri() . '/style.css', array(), time());
wp_enqueue_script('js', get_stylesheet_directory_uri() . '/js/script.js', array(), time(), true);

time() を使うと毎秒バージョンが変わり、キャッシュ効果がほぼ無くなる。date('YmdH') のようにすれば1時間ごと、date('YmdHi')なら1分ごとにバージョンが変わり、バランスが取れる。

PHPでのバージョン番号付与

<link rel="stylesheet" href="style.css?ver=<?php echo date('YmdHi'); ?>">
<script src="script.js?ver=<?php echo date('YmdHi'); ?>"></script>
<img src="image.jpg?ver=<?php echo date('YmdHi'); ?>" alt="">

これにより、リソースは1分ごとに更新されるとみなされる。

コード解説

  • ウェブサイトの静的ファイル(JavaScript、CSS、画像など)はブラウザにキャッシュされるため、更新しても古いファイルが表示されることがあります。
  • これを防ぐため、ファイルのURLにバージョン番号や日時などのパラメータを付加して、ブラウザに「新しいファイル」と認識させる方法がよく使われます。
  • こうすることで、キャッシュを強制的に更新し、常に最新のリソースをユーザーに提供できます。
  • ただし、毎回異なるタイムスタンプを付けるとキャッシュが無効化され、ページの読み込み速度が遅くなる可能性があるため、更新頻度に合わせて適切に管理することが重要です。

まとめ

ブラウザのキャッシュを確実に更新するには、静的リソースURLにバージョン番号を付与する「キャッシュバスター」が最も簡単で効果的。毎回タイムスタンプを付ける方法は確実だが、キャッシュ効果が失われるため推奨されない。手動でバージョン番号を管理するか、PHPやCMSの仕組みを使い適切なタイミングでバージョンを更新するのがベスト。画像も同様にURLにパラメーターを付けてキャッシュ回避可能。

関連記事
【2025年6月最新版】TIOBEインデックスで見る人気プログラミング言語ランキングとは?
2025年6月最新版のTIOBEインデックスから、今人気のプログラミング言語を解説。Python、C、C++、Javaなどの注目度や、インデックスの活用方法も紹介します。
解構人
解構人
8ヶ月前
【2025年6月最新版】TIOBEインデックスで見る人気プログラミング言語ランキングとは?
PHPのcheckdnsrr関数徹底解説:メールアドレス検証での活用方法
目次 フォーム開発で遭遇した課題 checkdnsrr関数とは? 主な用途 メールアドレスのドメイン検証 ドメイン存在確認 SPFレコードチェック ネットワーク診断ツール メリット デメリットと制限事項 実際の活用例 基本的なメールドメイン […]
解構人
解構人
7ヶ月前
PHPのcheckdnsrr関数徹底解説:メールアドレス検証での活用方法
!important なしでも大丈夫!CSS @layer でスタイル管理をもっと簡単に
CSS の !important は便利ですが、乱用すると保守が難しくなります。そこで注目されているのが新機能 @layer。この記事では、@layer を使って優先度を整理する方法を実装例とともに紹介します。
Details
Details
7ヶ月前
!important なしでも大丈夫!CSS @layer でスタイル管理をもっと簡単に
iPhone(iOS Safari)における input タグの角丸問題とその対策
iPhone(iOS Safari)でinputタグに自動で適用される角丸スタイルを無効化する方法を詳しく解説。CSSによるリセットやカスタムスタイルの実装手順を、具体的なコードとともに紹介します。
キウイフルーツ
キウイフルーツ
8ヶ月前
iPhone(iOS Safari)における input タグの角丸問題とその対策
ページ遷移の一般的な方法
本記事では、Webページにおけるページ遷移(リダイレクト)の一般的な実装方法について紹介しています。JavaScript、HTMLのメタタグ、PHP、ASPを用いたリダイレクト方法をそれぞれ具体的なコード例と共に解説しています。
Details
Details
9ヶ月前
ページ遷移の一般的な方法
WordPressサイトでメルマガ運用する時の注意点|簡単にできることには注意が必要でやんす。
「一括管理って響き最高!」だけど…WordPressでメルマガ配信するならセキュリティにご用心!メリットと落とし穴、そしてBenchmark Emailの使い方まで、編集長がゆるっと解説!
WASABI
WASABI
7ヶ月前
WordPressサイトでメルマガ運用する時の注意点|簡単にできることには注意が必要でやんす。
PHPの hash_equals 関数とは?なぜ == や === を使わないのか?
hash_equals は PHP において、2つの文字列が等しいかを安全に比較するための関数です。特にパスワードのハッシュや署名の検証などで使われます。== や === といった通常の比較演算子とは異なり、タイミング攻撃(Timing A […]
解構人
解構人
7ヶ月前
PHPの hash_equals 関数とは?なぜ == や === を使わないのか?
ABテストとは?赤か青か?データが導く最適な選択
ABテストは、今やデジタルマーケティングの「常識」となった科学的な意思決定手法です。日本のECサイトやアプリ開発の現場でも、「どちらのデザインが効果的か」「どんなキャッチコピーが響くか」を決める際に頻繁に活用されています。 この手法のルーツ […]
解構人
解構人
7ヶ月前
ABテストとは?赤か青か?データが導く最適な選択
第1回:ウェブにおける色の基礎(2025年最新版)
ウェブデザインの基礎「色」について、2025年最新トレンドやアクセシビリティ・ダークモード対応まで、実務ですぐ使えるCSS色指定方法を分かりやすく解説。初心者から現場のデザイナーまで必見のカラーマネジメント入門ガイド。
aki0o0
aki0o0
9ヶ月前
アパッチの.htaccessファイルを用いたセキュリティヘッダー設定による脆弱性対策手法
Apache .htaccessを使用した以下のヘッダーセキュリティ脆弱性に対する解決方法:X-Frame-Options, Strict-Transport-Security, X-XSS-Protection, X-Content-Ty […]
キウイフルーツ
キウイフルーツ
6ヶ月前
アパッチの.htaccessファイルを用いたセキュリティヘッダー設定による脆弱性対策手法
よく使われるPHPライブラリ9選【公式リンク付き・2025年版】
2025年最新!PHPでのWeb開発に役立つライブラリ&フレームワーク12選を厳選紹介。Laravel・Symfony・PHPMailer・Guzzleなど、実務で使えるツールをまとめてチェック。公式リンク付きで、今すぐ使える便利リスト!
aki0o0
aki0o0
9ヶ月前
よく使われるPHPライブラリ9選【公式リンク付き・2025年版】
同一ドメイン配下の複数アプリケーションにおけるCSRF対策ガイド
目次 1. 技術的背景と適用シナリオ 代表的な適用例 技術的利点 潜在的なリスク 2. CSRF保護メカニズムの基本原則 保護の三要素 3. 複数アプリケーション環境におけるセキュリティ課題 3.1 セッション命名衝突の深層的影響 具体的な […]
解構人
解構人
8ヶ月前
同一ドメイン配下の複数アプリケーションにおけるCSRF対策ガイド
CSSで等間隔配置を実現:1行に複数または複数行に配置
CSSでは、特にレスポンシブデザインにおいて、複数の要素を等間隔に配置する必要があります。列数や間隔を動的に制御することで、柔軟なレイアウトが実現可能です。この記事では、FlexboxとGridの2つの方法を使って、1行に複数のアイテムを等間隔に配置する方法を紹介します。コード内の変数(列数や間隔)を調整することで、1行に表示するアイテム数やその間隔を簡単に管理でき、レイアウト調整が容易になり、開発効率が大幅に向上します。
無敵の小さな蚊
無敵の小さな蚊
8ヶ月前
CSSで等間隔配置を実現:1行に複数または複数行に配置
JavaScriptでURL(パス)からファイル名を取得する
window.location.pathname でURLのパス部分を取得。 lastIndexOf('/') で最後のスラッシュ位置を検出。 substring でスラッシュの次から最後までを切り出し、ファイル名を抽出。
Details
Details
9ヶ月前
JavaScriptでURL(パス)からファイル名を取得する
inputのプレースホルダー(placeholder)の色を変更する
プレースホルダーの色は::placeholder疑似要素で変更可能 IEやEdgeなどの古いブラウザ向けに:-ms-input-placeholder、::-ms-input-placeholderを併用 Firefoxでは透明度の調整のためopacity指定が推奨される
Details
Details
9ヶ月前
inputのプレースホルダー(placeholder)の色を変更する