使用 Flarum 搭建的论坛,一般会遇到一个问题,就是搜索引擎的快照里,没有排版(CSS),甚至只显示 LOGO。
这主要有三个方面的原因。
- 站点开启了防盗链。搜索引擎无法向服务器请求 js、css 文件。
- 服务器上的 js、css 文件名有变更。搜索引擎在服务器上找不到相应的 js、css 文件。
- 百度快照无法拉取论坛数据代码结构。这可能是百度的问题。
第一个原因好解决,那就是把各大搜索引擎加到防盗链的白名单。
第二个原因就比较麻烦了,首先我们要先了解为什么论坛的 js、css 文件名会发生变化。
- 有时候,我们更新了插件,或者更新了语言包,需要清理缓存后才能使他们生效。在论坛后台点击清理缓存按钮或在 SSH 运行清理缓存命令
php flarum cache:clear
后,Flarum 就会把自己前端生成 js、css 文件全部清空,然后重新生成,由于文件名是随机字母命名的,因此文件名就发生了改变,进而导致在这个时间点之前就产生的快照版本,无法在服务器上找到那个版本的 js、css 文件,所以就快照就只有文字内容而没有排版。
第三个原因就不是现在简简单单解决的。可以等待 Flarum 开发者适配百度,或者自己翻阅资料修复。群里有位大佬建议给论坛加上 </noscript>
标签,以在百度快照中提示用户“百度不支持”,另外他也给出了这三个问题的解决方案:
SSO + www + bbs
不过我没有实验这个方法,不知道是否真实有效,有兴趣的同学可以去 flarum.org.cn 的 QQ 群里跟大佬对线。
本问题最早由外贸阿姨的站长在 Flarum 社区提出的,感兴趣的同学可以参与探讨一下。传送门1,传送门2。