ユーザーのブラウザに保存されている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でナビゲーション以外の場所をクリックしたらナビゲーションを閉じる
本コードは典型的なモバイル用サイドナビゲーションの実装例です。ボタンによる表示切替と、メニュー外クリック検知を組み合わせることで、ユーザー体験を向上させています。さらにESCキーでのメニュー閉鎖も可能にし、アクセシビリティも配慮しています。
Details
Details
4ヶ月前
JavaScriptでナビゲーション以外の場所をクリックしたらナビゲーションを閉じる
PHPの hash_equals 関数とは?なぜ == や === を使わないのか?
hash_equals は PHP において、2つの文字列が等しいかを安全に比較するための関数です。特にパスワードのハッシュや署名の検証などで使われます。== や === といった通常の比較演算子とは異なり、タイミング攻撃(Timing A […]
解構人
解構人
2ヶ月前
PHPの hash_equals 関数とは?なぜ == や === を使わないのか?
WordPress 投稿・固定ページのIDをSQLで変更する方法
WordPressでは、投稿や固定ページ、カスタム投稿タイプの各コンテンツに一意のID(投稿ID)が割り当てられており、 このIDは内部データベース(主に wp_posts テーブル)で管理されています。 通常、投稿IDは自動採番され変更不可ですが、サイト移行やリンク調整などの理由で投稿IDを直接変更したい場合があります。 本記事では、SQLを用いて投稿・固定ページのIDを安全に変更する手順を解説します。 また、ID変更に伴う関連データの更新方法や注意点も詳述しますので、ぜひ参考にしてください。
Hugh
Hugh
2ヶ月前
WordPress 投稿・固定ページのIDをSQLで変更する方法
!important なしでも大丈夫!CSS @layer でスタイル管理をもっと簡単に
CSS の !important は便利ですが、乱用すると保守が難しくなります。そこで注目されているのが新機能 @layer。この記事では、@layer を使って優先度を整理する方法を実装例とともに紹介します。
Details
Details
2ヶ月前
!important なしでも大丈夫!CSS @layer でスタイル管理をもっと簡単に
SafariでGoogleフォントが正しく表示されない原因と対策【font-weight・font-style完全ガイド】
SafariやiOSでGoogleフォントが正しく表示されない主な原因と対策を徹底解説。font-weight・font-styleの指定ミスによるWebフォント崩れを解決するCSSサンプル付きガイド。
aki0o0
aki0o0
4ヶ月前
SafariでGoogleフォントが正しく表示されない原因と対策【font-weight・font-style完全ガイド】
PHPで日本語の日付形式をタイムスタンプに変換する方法【午前/午後対応】
日本語の「2025年6月24日」や「2025年6月24日 午後3時30分」といった形式の日付を、PHPで正確にタイムスタンプへ変換する方法を解説。DateTimeクラスを使ったベストプラクティスや、午前・午後を含む特殊な形式の処理例も紹介します。日本向けWordPress開発にも最適。
キウイフルーツ
キウイフルーツ
4ヶ月前
PHPで日本語の日付形式をタイムスタンプに変換する方法【午前/午後対応】
inputのプレースホルダー(placeholder)の色を変更する
プレースホルダーの色は::placeholder疑似要素で変更可能 IEやEdgeなどの古いブラウザ向けに:-ms-input-placeholder、::-ms-input-placeholderを併用 Firefoxでは透明度の調整のためopacity指定が推奨される
Details
Details
4ヶ月前
inputのプレースホルダー(placeholder)の色を変更する
画像の遅延読み込みはこう変わる!2025年最新版・Lazy LoadとIntersectionObserverの最適解
2025年最新の画像遅延読み込み(Lazy Load)完全ガイド。ネイティブloading="lazy"とIntersectionObserverの使い分け・実装例・SEOやLCPへの最新対応ポイントまで徹底解説。パフォーマンスと検索順位アップのための必読ノウハウ!
aki0o0
aki0o0
4ヶ月前
画像の遅延読み込みはこう変わる!2025年最新版・Lazy LoadとIntersectionObserverの最適解
CSSによる絶対中央寄せ
実用性が高い方法順で7種類の実装方法を紹介 最も推奨されるのは Flexbox と Grid transform を使う方法はどんな要素にも応用可能 line-height や table-cell は特定用途向け JavaScript による制御も紹介されている
Details
Details
4ヶ月前
CSSによる絶対中央寄せ
WordPressサイトでメルマガ運用する時の注意点|簡単にできることには注意が必要でやんす。
「一括管理って響き最高!」だけど…WordPressでメルマガ配信するならセキュリティにご用心!メリットと落とし穴、そしてBenchmark Emailの使い方まで、編集長がゆるっと解説!
WASABI
WASABI
3ヶ月前
WordPressサイトでメルマガ運用する時の注意点|簡単にできることには注意が必要でやんす。
ABテストとは?赤か青か?データが導く最適な選択
ABテストは、今やデジタルマーケティングの「常識」となった科学的な意思決定手法です。日本のECサイトやアプリ開発の現場でも、「どちらのデザインが効果的か」「どんなキャッチコピーが響くか」を決める際に頻繁に活用されています。 この手法のルーツ […]
解構人
解構人
3ヶ月前
ABテストとは?赤か青か?データが導く最適な選択
よく使われるPHPライブラリ9選【公式リンク付き・2025年版】
2025年最新!PHPでのWeb開発に役立つライブラリ&フレームワーク12選を厳選紹介。Laravel・Symfony・PHPMailer・Guzzleなど、実務で使えるツールをまとめてチェック。公式リンク付きで、今すぐ使える便利リスト!
aki0o0
aki0o0
4ヶ月前
よく使われるPHPライブラリ9選【公式リンク付き・2025年版】
【CSSテクニック】:not()セレクタで階層を跨いだ除外を実現
:not()疑似クラスはCSSでの除外指定に便利ですが、親要素や階層関係に対しては思わぬ制約があります。本記事では、WordPressの投稿構造を例に、インラインコードとコードブロックを正確に区別するためのセレクタ設計を解説します。
無敵の小さな蚊
無敵の小さな蚊
3ヶ月前
【CSSテクニック】:not()セレクタで階層を跨いだ除外を実現
【WordPress対応】郵便番号から住所を自動入力!「Zipaddr-JP」プラグインの導入方法と使い方
目次 プラグイン「Zipaddr-JP」とは 「Zipaddr-JP」の特徴 プラグイン「Zipaddr-JP」の使い方 プラグイン「Zipaddr-JP」のインストール お問い合わせフォームとの連携 さいごに プラグイン「Zipaddr- […]
メモ・ノートスケ
メモ・ノートスケ
4ヶ月前
【WordPress対応】郵便番号から住所を自動入力!「Zipaddr-JP」プラグインの導入方法と使い方
IT業界の初心者が知っておくべきの用語(2025版)
新しいテクノロジーについて話すとき、時々自分がみんなのペースについていけないと感じることはありませんか?あるいは、その業界にいるのに、自分はまだ十分ではないと感じ、多くの専門用語を理解しなければならないこともあるでしょう。
Details
Details
4ヶ月前
IT業界の初心者が知っておくべきの用語(2025版)