Flarum beta 版的缓存问题是造成这个论坛程序各种错误的主因,譬如:nojs、后台改了样式,但前台不变、切换语言遇到错误显示,显示为 xxx.xxx.xx。下面我将详细讲解一下 Flarum 的缓存机制。
Flarum 的缓存有三大部分:
主缓存(大部分 nojs 页面主因)
简介:由论坛生成撑起整个 Flarum 网站的 JS 和 CSS 的合并文件,如果关闭 debug(默认)将为压缩状态,开启 debug 则为非压缩状态。
位置:/assets
目录下的 admin-xxx.css
、admin-xxx.js
、forum-xxx.js
、forum-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
目录下的 cache
、formatter
、less
、locale
、tmp
、views
等文件夹。
作用:
- 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 还是稳如泰山的。