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 还是稳如泰山的