6
5

More than 5 years have passed since last update.

iPhone等の頑固なキャッシュ対策(Wordpress)

Last updated at Posted at 2018-10-13

「表示変わってないんだけど」

よく言われます。特にiPhoneのお客様。
iPhoneは妙にガンコなキャッシュをお持ちらしい。
以下が代表的な対策例。

cssパラメータを付ける

強制reloadさせる

ただ、これらの対策をやっても効かないときは効かない。
それで仕方なく以下の手段をお願いすることになっていた。

プライベートブラウズで確認してもらう

キャッシュや閲覧履歴を消してもらう

最終手段。
でも以下の問題が。

「お客さん(本顧客)にキャッシュ消して確認して貰うのは無理」

これ。
iPhoneを持ってるお客さん(非デジタルネイティブ)にキャッシュ消して確認して貰うのはまず無理で、話が分かるお客様でも毎回はさすがにうんざりされる。

Wordpressならキャッシュ系プラグインを使う手も

WPならなんらかのものがあるはずと思って探してみたが、キャッシュ制御そのものずばりはなかった。
ただ、思うところあり、WP-Super-Cacheを入れてみた。Clear Cache for Meも。

表示のスピードアップ目的でなく、キャッシュシステムを利用してCSSやjs等々を副次的に再読み込みさせられないかと思った。

一応、思惑通り動いてくれている模様。

プラグインを入れてからお客様から「表示変わってないよ」と言われることがなくなった。
更新時も、意識してキャッシュクリアしなくとも一応反映されている模様?
怖いのでまだ毎回キャッシュクリアボタン押してます。←何回か忘れたように思うけど大丈夫な模様。

ただ、表示が早くなったと言われることもなかったりして。
Wordpressならこういう手もあるよということでひとつ。

Wordpressでキャッシュプラグインを入れる前に

Wordpressの場合は以下の方法で更新日時を強制的にパラメータ付与するのを試すといいかも。
PHPが使えれば同じ方法でいけるかも、絶対パスでルートURL取得して、、相対パスの構成の場合はまた別で、、

function.php
// css, jsの更新反映対策
function with_modified_param($path) {
    // return get_template_directory_uri().$path."?"."201810201200"; // 重い場合
    return get_template_directory_uri().$path."?".filemtime(get_template_directory().$path);
}
header.php
<link rel="stylesheet" type="text/css" href="<?php echo with_modified_param('/css/xxx.css'); ?>"/>
<script src="<?php echo with_modified_param('/js/xxx.js'); ?>"></script>

cssをimport文でまとめて読み込んでるのが原因だったかも。。?

上記のパラメータ対策を入れる前にimport記述をバラしてみた。
するとあっさりキャッシュ無視して読み込んでくれるようになったり。。
こういう記述はやめたほうがいいのかもしれない。

header.php
<link rel="stylesheet" href="/common/css/import.css?201812261230toka">
<!--↓import.cssの中身-->
@import "reset.css";
@import "fontawesome-all.min.css";
@import "style.css";
@import "print.css";
<!--↓import.cssをばらした記述-->
<link rel="stylesheet" href="<?php echo with_modified_param('/common/css/reset.css'); ?>">
<link rel="stylesheet" href="<?php echo with_modified_param('/common/css/fontawesome-all.min.css'); ?>">
<link rel="stylesheet" href="<?php echo with_modified_param('/common/css/style.css'); ?>">
<link rel="stylesheet" href="<?php echo with_modified_param('/common/css/print.css'); ?>">
6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5