ユーザーのブラウザに保存されている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にパラメーターを付けてキャッシュ回避可能。

関連記事
フッターのJavaScriptは画像読み込みに影響する?ブラウザの読み込み順と最適化の基本
はじめに Webサイトの表示速度や操作感は、単にコンテンツの量や見た目だけでなく、ブラウザがリソースをどのように読み込むかによっても大きく左右されます。特にJavaScriptや画像の読み込み順序、そしてそれらがどのように相互作用しているか […]
解構人
解構人
27日前
フッターのJavaScriptは画像読み込みに影響する?ブラウザの読み込み順と最適化の基本
【WordPress対応】郵便番号から住所を自動入力!「Zipaddr-JP」プラグインの導入方法と使い方
目次 プラグイン「Zipaddr-JP」とは 「Zipaddr-JP」の特徴 プラグイン「Zipaddr-JP」の使い方 プラグイン「Zipaddr-JP」のインストール お問い合わせフォームとの連携 さいごに プラグイン「Zipaddr- […]
メモ・ノートスケ
メモ・ノートスケ
29日前
【WordPress対応】郵便番号から住所を自動入力!「Zipaddr-JP」プラグインの導入方法と使い方
PHPでウェブサイトのフッターにあるCopyrightの年数範囲を自動更新する
auto_copyright() 関数は、動的に著作権の年数を出力します。引数として開始年を受け取り、現在の年と比較して、単一年または範囲(例: 2015 - 2025)を表示します。
Details
Details
1ヶ月前
PHPでウェブサイトのフッターにあるCopyrightの年数範囲を自動更新する
同一ドメイン配下の複数アプリケーションにおけるCSRF対策ガイド
目次 1. 技術的背景と適用シナリオ 代表的な適用例 技術的利点 潜在的なリスク 2. CSRF保護メカニズムの基本原則 保護の三要素 3. 複数アプリケーション環境におけるセキュリティ課題 3.1 セッション命名衝突の深層的影響 具体的な […]
解構人
解構人
1ヶ月前
同一ドメイン配下の複数アプリケーションにおけるCSRF対策ガイド
JavaScriptでナビゲーション以外の場所をクリックしたらナビゲーションを閉じる
本コードは典型的なモバイル用サイドナビゲーションの実装例です。ボタンによる表示切替と、メニュー外クリック検知を組み合わせることで、ユーザー体験を向上させています。さらにESCキーでのメニュー閉鎖も可能にし、アクセシビリティも配慮しています。
Details
Details
1ヶ月前
JavaScriptでナビゲーション以外の場所をクリックしたらナビゲーションを閉じる
第1回:ウェブにおける色の基礎(2025年最新版)
ウェブデザインの基礎「色」について、2025年最新トレンドやアクセシビリティ・ダークモード対応まで、実務ですぐ使えるCSS色指定方法を分かりやすく解説。初心者から現場のデザイナーまで必見のカラーマネジメント入門ガイド。
aki0o0
aki0o0
1ヶ月前
PHPで日本語の日付形式をタイムスタンプに変換する方法【午前/午後対応】
日本語の「2025年6月24日」や「2025年6月24日 午後3時30分」といった形式の日付を、PHPで正確にタイムスタンプへ変換する方法を解説。DateTimeクラスを使ったベストプラクティスや、午前・午後を含む特殊な形式の処理例も紹介します。日本向けWordPress開発にも最適。
キウイフルーツ
キウイフルーツ
28日前
PHPで日本語の日付形式をタイムスタンプに変換する方法【午前/午後対応】
【jQuery】フルスクリーンナビゲーション時に背景のスクロールを無効にする方法
このjQueryコードは、トグルボタンの状態に応じてナビゲーションを開閉し、背景のスクロールを動的に制御します。クラス名 back をトリガーとして、html 要素に適切なスタイルを適用し、快適なフルスクリーンUIを提供します。
Details
Details
1ヶ月前
【jQuery】フルスクリーンナビゲーション時に背景のスクロールを無効にする方法
【CSS & JavaScript & SVG対応】円グラフ(扇形図)のアニメーション表現まとめ
はじめに 円グラフ(パイチャート)は、比率や構成比を視覚的に伝えるのに最適なUIコンポーネントです。最近、業務で使う機会があり、さまざまな方法でエフェクトをつけて表示する実装を試しました。 この記事では、以下の3パターンで実装する方法を紹介 […]
キウイフルーツ
キウイフルーツ
21日前
【CSS & JavaScript & SVG対応】円グラフ(扇形図)のアニメーション表現まとめ
日本語用WebサイトのCSSフォント設定(日本語フォント/游ゴシック/游明朝)
日本語フォントはOSにより異なるため、複数のフォントを優先順に指定する。 "Yu Gothic"や"Yu Mincho"はモダンな日本語フォントでWindows 8.1以降に搭載。 "ヒラギノ角ゴ"や"ヒラギノ明朝"はmacOS向けで、高品質。 "メイリオ"や"MS 明朝"などは古いWindows環境にも対応。 ゴシック体はカジュアル・読みやすさ重視、明朝体はフォーマル・高級感重視に適している。
Details
Details
1ヶ月前
日本語用WebサイトのCSSフォント設定(日本語フォント/游ゴシック/游明朝)
【2025年6月最新版】TIOBEインデックスで見る人気プログラミング言語ランキングとは?
2025年6月最新版のTIOBEインデックスから、今人気のプログラミング言語を解説。Python、C、C++、Javaなどの注目度や、インデックスの活用方法も紹介します。
解構人
解構人
1ヶ月前
【2025年6月最新版】TIOBEインデックスで見る人気プログラミング言語ランキングとは?
inputのプレースホルダー(placeholder)の色を変更する
プレースホルダーの色は::placeholder疑似要素で変更可能 IEやEdgeなどの古いブラウザ向けに:-ms-input-placeholder、::-ms-input-placeholderを併用 Firefoxでは透明度の調整のためopacity指定が推奨される
Details
Details
1ヶ月前
inputのプレースホルダー(placeholder)の色を変更する
CSSで等間隔配置を実現:1行に複数または複数行に配置
CSSでは、特にレスポンシブデザインにおいて、複数の要素を等間隔に配置する必要があります。列数や間隔を動的に制御することで、柔軟なレイアウトが実現可能です。この記事では、FlexboxとGridの2つの方法を使って、1行に複数のアイテムを等間隔に配置する方法を紹介します。コード内の変数(列数や間隔)を調整することで、1行に表示するアイテム数やその間隔を簡単に管理でき、レイアウト調整が容易になり、開発効率が大幅に向上します。
無敵の小さな蚊
無敵の小さな蚊
25日前
CSSで等間隔配置を実現:1行に複数または複数行に配置
CSSによる絶対中央寄せ
実用性が高い方法順で7種類の実装方法を紹介 最も推奨されるのは Flexbox と Grid transform を使う方法はどんな要素にも応用可能 line-height や table-cell は特定用途向け JavaScript による制御も紹介されている
Details
Details
1ヶ月前
CSSによる絶対中央寄せ
PHPのcheckdnsrr関数徹底解説:メールアドレス検証での活用方法
目次 フォーム開発で遭遇した課題 checkdnsrr関数とは? 主な用途 メールアドレスのドメイン検証 ドメイン存在確認 SPFレコードチェック ネットワーク診断ツール メリット デメリットと制限事項 実際の活用例 基本的なメールドメイン […]
解構人
解構人
4日前
PHPのcheckdnsrr関数徹底解説:メールアドレス検証での活用方法