Flarum beta 版のキャッシュ問題は、このフォーラムプログラムで発生するさまざまなエラーの主な原因です。たとえば、nojs、管理画面でスタイルを変更したのにフロントエンドに反映されない、言語を切り替えるとエラー表示になり、xxx.xxx.xx と表示される、といった問題です。以下では、Flarum のキャッシュ機構について詳しく解説します。

Flarum のキャッシュには大きく3つの部分があります。

メインキャッシュ(大部分の nojs ページの主な原因)

概要:フォーラムによって生成され、Flarum サイト全体を支える JS と CSS の結合ファイルです。debug を無効(デフォルト)にすると圧縮状態になり、debug を有効にすると非圧縮状態になります。

場所:/assets ディレクトリ内の admin-xxx.cssadmin-xxx.jsforum-xxx.jsforum-xxx.css、および rev-manifest.json

役割:その名のとおり、admin で始まる2つのファイルは管理画面の JS と CSS ファイルを表し、forum で始まるファイルはサイトのフロントエンドの JS と CSS ファイルを表します。rev-manifest.json にはこの4つのファイル名が記録されており、サイトを開くと rev-manifest.json にリクエストを送信して、対応する CSS と JS ファイルを取得します。

削除:公式では、サイトのルートディレクトリに cd して php flarum cache:clear と入力し、削除することを推奨しています。ただし、この削除では rev-manifest.json は削除されないため、一部のプラグインでは、削除後に rev-manifest.json ファイルを手動で削除する必要があります。

ストレージキャッシュ(一部の nojs ページの主な原因)

概要:Flarum が最初に生成するキャッシュファイルです(システムやプラグインから JS、CSS などを抽出し、ルートディレクトリの /storage 配下に分散して保存します)。その後、CSS と JS を上記のメインキャッシュに結合します。

場所:/storage ディレクトリ内の cacheformatterlesslocaletmpviews などのフォルダー。

役割:

  • cache:通常のキャッシュです。フォーラムで使用するさまざまなキャッシュ内容を分散して圧縮します。プラグインを有効にした後に反映されない、または nojs になり、メインキャッシュを削除しても効果がない場合は、このフォルダー内のすべてのファイルを削除してください。通常はこれで解決できます。
  • formatter:BBCode キャッシュです。カスタム BBCode を追加した場合(オンライン動画用の flarum-ext-mediaembed プラグインを追加または編集した場合を含む)は、必ずこのフォルダー内のファイルを手動で削除してください。
  • less:その名のとおり、フォーラムで使用するすべての Less キャッシュです(Less とは簡単に言えば高機能版の CSS 言語で、Flarum の CSS はすべて Less から生成されます)。プラグインの有効・無効を切り替えた後にスタイルが崩れた場合は、このフォルダー内のすべてのファイルを削除するとよいでしょう。
  • locale:中国語に切り替えた後、タイトルやボタンなどがすべて xx.xxxx.xxxx と表示される場合は、迷わずこのフォルダー内のファイルをすべて削除してください。ここには言語ファイルがキャッシュされています。
  • tmp:フォーラムの一時キャッシュです。通常は自動的に削除されます。
  • views:ビューキャッシュです。キャッシュされた CSS、HTML などの内容が含まれます。

ブラウザーキャッシュ

これは詳しく説明する必要はないでしょう。基本的に、キャッシュを削除するたびに Ctrl + F5 でブラウザーページを更新する必要があります。Flarum は変更後にブラウザーキャッシュを同期して更新しないためです。

まとめ:Flarum でこれほど多くの問題が発生する主な原因は、やはり Flarum のキャッシュ機構にあります。キャッシュされる場所が多く、さらに複数のキャッシュがさまざまな問題によって同期して更新されないことがあります。もちろん、フォーラムをインストールした後に管理画面の設定(特にプラグインの有効・無効やプラグイン設定)を変更しなければ、Flarum は泰山のように安定しています。