Flarum beta 版的缓存问题是造成这个论坛程序各种错误的主因,譬如:nojs、后台改了样式,但前台不变、切换语言遇到错误显示,显示为 xxx.xxx.xx。下面我将详细讲解一下 Flarum 的缓存机制。

Flarum 的缓存有三大部分:

主缓存(大部分 nojs 页面主因)

简介:由论坛生成撑起整个 Flarum 网站的 JS 和 CSS 的合并文件,如果关闭 debug(默认)将为压缩状态,开启 debug 则为非压缩状态。

位置:/assets 目录下的 admin-xxx.cssadmin-xxx.jsforum-xxx.jsforum-xxx.css,以及 rev-manifest.json

作用:顾名思义,两个 admin 开头的是代表后台的 JS 和 CSS 文件,而 forum 开头的则代表网站前台的 JS 和 CSS 文件,rev-manifest.json 将记录这四个文件的名称,打开网站的时候会对 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 还是稳如泰山的。

如果觉得我的文章对你有用,请随意赞赏