x-serverにデプロイしたらjsファイルが更新されない

例1:

slider.js を編集して上書き保存 → FTPアップロード。
でも実際の画面を開くと…前と同じ動き。

原因:

Xserverやブラウザが「slider.js は前と同じファイル」と判断し、
キャッシュ済みの古いバージョンを配信している。


✅ 解決策(確実に最新JSを読ませる方法)

🥇 方法1:WordPressの filemtime() を使う(あなたのテーマはこれを採用済み!)

wp_enqueue_script(
  'shisaku-slider',
  get_template_directory_uri() . '/assets/js/slider.js',
  array('jquery'),
  filemtime(get_template_directory() . '/assets/js/slider.js'),
  true
);

これにより、読み込みURLが例えばこう変化します:

/assets/js/slider.js?ver=1739999275

?ver= の数字はファイルの最終更新時刻(UNIXタイム)なので、
 ファイルを変更・上書きするたびに自動で変わります。
→ つまりブラウザは「別のファイル」と認識して、必ず再取得します。


🥈 方法2:FTPで上書きではなく「削除 → 再アップ」

あなたがやった通りです ✅
削除するとサーバー上のファイル更新時刻(mtime)がリセットされるため、
次回アクセス時に確実に新ファイルが配信されます。


🥉 方法3:ブラウザキャッシュを手動で消す

開発中ならこれも有効:

  • Windows: Ctrl + F5 または Ctrl + Shift + R
  • Mac: Cmd + Shift + R
  • Chrome DevTools の「キャッシュ無効化」をONにして更新もOK。

🧱 方法4:Xserverのキャッシュ/WAFを一時オフ

管理パネル → サーバー設定 → 「WAF設定」
→ 対象ドメイン → 「OFF」
※ 数分後に効果が出ます。再ONはあとでOKです。


🚀 実運用時のベストプラクティス

環境推奨方法
ローカル(XAMPP)通常上書きでOK(キャッシュなし)
Xserverなど本番環境filemtime() を必ず使用(あなたはOK)
外部CDN利用時(Cloudflare等)キャッシュクリアを明示的に実行

🧩 まとめ

状況原因対応策
アップロードしても動作が変わらない古いJSキャッシュが残っているファイル削除→再アップ or filemtime使用
ローカルでは正常、本番ではズレるサーバーキャッシュXserver WAFを一時OFF
たまに直る更新時刻が変わったため再配信された正常動作に戻っている

✅ あなたの今の functions.php は、すでに正しい対策が入っています。
つまり、今後同じ問題が起きた場合は、
「サーバーキャッシュ」か「ブラウザキャッシュ」のどちらかです。

\ 最新情報をチェック /

コメント

PAGE TOP
タイトルとURLをコピーしました