folderデザインしたい

サイト更新ごとにCSSファイルを新しく読み込ませてキャッシュ問題を回避する方法

サイト更新ごとにCSSファイルを新しく読み込ませてキャッシュ問題を回避する方法

サイト更新ごとにCSSファイルを新しく読み込ませてキャッシュ問題を回避する方法 - https://do.gt-gt.org/avoid-cache/

サイトを更新するとき、CSSファイルを書き換えてアップロードすることがありますが、ご存じの通りCSSファイルにはブラウザにキャッシュが残りやすいという特徴があります。

CSSがうまく反映されたか、いちいちキャッシュをクリアして確認するのは面倒です。そもそも訪問者からすればCSSが更新されたかどうかなんて分からないので、「数日ぶりにサイトを訪れたら、なんか表示がヘン!!」なんてことにもなりかねません

そこで今回は、CSSファイルのキャッシュを読み込ませず、CSSファイルの更新ごとに新しいファイルを訪問者に読み込ませる方法を紹介します。

CSS読み込みタグに「クエリ」を追記するだけです

実例を見てみましょう。以下が通常のCSS読み込みタグです。

<link rel="stylesheet" href="http://sample.com/css/style.css">

そして、以下がファイルの更新ごとにCSSを読み込ませるタグ

<link rel="stylesheet" href="http://sample.com/css/style.css?20221218">

違いが分かるでしょうか? 下のタグではCSSファイルのパスの後ろに?20221218という記述が追加されていますね。

URLの末尾に追記されている半角?で始まるこの記述は、クエリと呼ばれるものです。サイトに訪問してくれた人のリクエストを詳細にサーバーに伝える役割を果たすものです。

サイト更新ごとにCSSファイルを新しく読み込ませてキャッシュ問題を回避する方法ざっくりいうと、クエリを追加してファイルを更新するごとにクエリも更新することで、CSSファイル名が同一であっても、クエリ部分が別であればブラウザが「前回読み込んだものと違うファイル名だ」と判断して読み込み直してくれるため、キャッシュ問題を回避できるというわけです。

クエリはどんなものをつけてもよいですが、分かりやすさのために、ファイルを更新した日付にしておくことをオススメします。

HTMLでサイトを構築している場合

HTMLでサイトを構築している場合は、テキストエディタのプロジェクト内一括置換機能を使えば、膨大な数のHTMLファイルの中のクエリ部分のみを変更することができます。例えば、style.css?20221218style.css?20221219へ置換するイメージ。

PHPでサイトを構築している場合

PHPでサイトを構築している場合は、CSS読み込み部分をパーツ化している場合がほとんどのはずなので、更新はカンタンですね。もしも毎回CSS読み込み部分を書き換えるのは面倒だという場合は、以下のようにするとよいでしょう。

<link rel="stylesheet" href="http://sample.com/css/style.css?<?php echo date('Ymd'); ?>">

<?php echo date('Ymd'); ?>部分は、ページにアクセスしたときの日付を自動で出力してくれます。例えば2022年12月18なら、20221218と出力されます。つまり訪問者は日付が変わるごとにCSSを新しく読み込まされるというわけです。

もしも「キャッシュを全く利用させず、訪問ごとに読み込ませたい」という場合は、<?php echo date('YmdHis'); ?>にすれば、年月日に加えて時間・分・秒も出力されるので、ページを訪問する毎にCSSを読み込ませることができます。

ちなみに、HTMLベタ打ちサイトは、HTMLに慣れた人であればカンタンにPHP製に切り替えることができます。サイト内でPHPを使うことができれば便利な小技もあれこれ使うことができるので、ぜひご検討ください。

この記事を書いた人

ガタガタ

このサイトと、このサイトの掲載記事のほとんどと、このサイトで配布しているプログラムやテンプレートのすべてを作った人。絵を描いたり、文章を書いたりして暮らしています。

関連記事

クリックで内容を展開するアコーディオンメニューをCSSだけで実装する方法
folderデザインしたい favorite 33

クリックで内容を展開するアコーディオンメニューをCSSだけで実装する方法

コピペでOK!オシャレなフォントが無料で使えるGoogle Fontsの導入方法
folderデザインしたい favorite 35

コピペでOK!オシャレなフォントが無料で使えるGoogle Fontsの導入方法

YouTubeの埋め込みの縦横比を一定のままレスポンシブ対応させる方法
folderデザインしたい favorite 26

YouTubeの埋め込みの縦横比を一定のままレスポンシブ対応させる方法

加工ソフト不要!CSSだけで写真やイラストを加工し雰囲気を変える方法
folderデザインしたい favorite 4

加工ソフト不要!CSSだけで写真やイラストを加工し雰囲気を変える方法

個人サイトに可愛いアイコンを無料導入!Line Awesomeの使い方
folderデザインしたい favorite 53

個人サイトに可愛いアイコンを無料導入!Line Awesomeの使い方

TwitterのタイムラインをWebサイトに埋め込む方法
folderデザインしたい favorite 12

TwitterのタイムラインをWebサイトに埋め込む方法