Nextcloud

Nextcloud のキャッシュバスター入門

今回は、Nextcloudで時々遭遇するキャッシュ問題への対処法をご紹介します。

ブラウザキャッシュは、Nextcloud の表示速度向上とネットワーク負荷軽減に役立つ重要な仕組みです。しかし、Nextcloudのアップグレード後やトラブルシューティング時に、古いキャッシュが残存することで予期せぬ問題が発生することがあります。特に、JavaScriptやCSSファイルの古いキャッシュは、機能不全やレイアウト崩れの原因となることがあります。

もしも、Nextcloud の不可解な動作に遭遇した際、以下の方法でブラウザキャッシュによる影響有無を確認することができます。

【ブラウザ側での対処方法】

  1. 強制リロード
    – Windows: Ctrl+F5
    – Mac: Cmd+Shift+R
    を使用することで、ページに関連する一時ファイルをリフレッシュできます。

  2. プライベートウィンドウの利用
    ブラウザのプライベートウィンドウ(シークレットモード)でアクセスすることで、既存のキャッシュに影響されない環境でのテストが可能です。

  3. 開発者ツールの活用
    ブラウザ開発者ツール(F12)のNetworkタブにある「Disable cache」オプションを使用することで、キャッシュを無効化した状態での動作確認が可能です。

【システム側での対処方法】

ブラウザ側でのキャッシュクリアは各ブラウザ個別での対応となりますが、Nextcloudには、全ユーザのキャッシュを一括更新する機能が実装されています。

occ config:app:set theming cachebuster --value="$(($(sudo -u nginx php occ config:app:get theming cachebuster) + 1))"

このoccコマンドは、Theming アプリの cachebuster 値を更新し、Nextcloud 内部で管理しているアセット(静的リソース)のバージョン番号を更新します。コマンド実行により次のような効果があります。

  • キャッシュ対象ファイル(JavaScript, CSS, 画像ファイル等)の更新をブラウザに通知
  • 次回アクセス時に全てのブラウザで自動的にキャッシュを更新
  • システム全体での一貫したキャッシュ制御が可能

ブラウザ側での個別対応から、システム全体でのキャッシュ制御まで、段階的なアプローチにより、効果的なトラブルシューティングが可能となります。

以上、現場からお届けいたしました。