質問: ### 前提・実現したいこと 画像、javascript、css、html、php、動画など ワードプレスのWebサイトで使うあらゆるファイルで キャッシュを残したくない。 ### 発生している問題・エラーメッセージ あらゆるファイルでキャッシュを残さない設定方法がわからない ### 該当のソースコード ``` header('Expires: Tue, 1 Jan 2018 00:00:00 GMT'); header('Last-Modified:' . gmdate( 'D, d M Y H:i:s' ) . 'GMT'); header('Cache-Control:no-cache,no-store,must-revalidate,max-age=0'); header('Cache-Control:pre-check=0,post-check=0',false); header('Pragma:no-cache'); ``` 出典元: https://ysinc.co.jp/blog/wpcache/ ### 試したこと googleでキャッシュについて調査。 no-cacheよりno-storeを設定した方がいいとのこと。 方法1:htaccessを使う方法 方法2:phpのheader関数を使う方法 方法3:htmlのmetaタグの方法 上記3つが出てきた。 ーーーーーーー 方法1:htaccessについては拡張子を指定して制限すれば そのファイルだけキャッシュ利用不可になるとのこと。 逆を言えば拡張子を指定しなければ全てのファイルに適用できそう。 ただしhtaccessファイル自体がキャッシュされてしまう可能性を 否定できる情報が見つからなかった。htaccessは影響範囲が多いので できれば方法2がいい。 ーーーーーーー 方法2:phpに書くということで、php以外の画像ファイルや動画ファイルなどの他のファイルのキャッシュも残らないのかが不明。「no-store ワードプレス」などで検索しても、ワードプレスのどのファイルに上記該当のソースコードを記述すればいいのかの情報も出てこなかった。「no-store functions.php」でも成果なし。 ーーーーーーー 方法3:htmlに書くということで、html以外の画像ファイルや動画ファイルなどの他のファイルのキャッシュも残らないのかが不明。しかも記述しても効果がなかったという記事も散見される。 ### 追記1:キャッシュを無効にしたい理由 更新したらすぐに反映させたいからです。ユーザー側にキャッシュを削除してもらうのは負担なので避けたいです。 ### 追記2:キャッシュを無効にしたい範囲 フロントエンドで主に作業するので、 画像、javascript、css、html、動画 はキャッシュさせたくないです。 ワードプレスを利用するので、 php、データベース もキャッシュさせたくないです。 ただしワードプレスのシステムで使っている全ファイルの種類を網羅しているわけでないので、上記に挙げた種類のファイル以外にも「Webサイトで使うあらゆるファイル」というのが希望でした。しかし「あらゆるファイル」では質問としてあいまいで、抽象的すぎました。失礼いたしました。
回答: 質問者の「キャッシュ」はクライアント側のキャッシュ(ブラウザキャッシュ)の事だろうということで答えてみます。それらの方法はすべてクライアントに「キャッシュしないでね」というお願いだと思うので、結局の所はクライアントの仕様によるのだと思います。何が何でも絶対にキャッシュさせないというのは難しいのかもしれません。先人の方が試されてもダメだったということは、おそらくそういうことだったと思います。 何とかしたいと考えるなら、サーバサイドレンダリングでSPAでサイトを構築するとか、ストリーミング動画配信のような表現でサイトを構築するとか、根本的に違う方法を試すとかになるんでしょうか。それで「キャッシュ」を防げるかどうかはなんともですが。