本文最后更新于 213 天前,其中的信息可能已经有所发展或是发生改变。
我碰巧更新 Nextcloud 应用,更新完了发现真完了,除了核心功能,所有插件都打不开了,页面一片空白。
不急,我一打开开发者控制台,急了。它爆 Uncaught SyntaxError: Invalid or unexpected token
很快啊,我怀疑到可能是脚本优化问题,立即去 Cloudflare 清了一次缓存,本地也清了一次缓存,还是爆的,一样的报错。
Cloudflare 开发者模式开了之后,发现脚本没有变,那么大概率就是服务端的问题了。
解决方案
Nextcloud 会在存储目录(存用户文件的那里)创建一个类似 /appdata_*
的目录,比如 /appdata_aminuosi
,研究发现这个目录用于存放部分插件生成的脚本和样式文件,也存储用户上传的头像等公用资源。很快怀疑到是不是因为升级插件版本而没更新插件脚本“缓存”文件导致的问题。
直接删掉 /appdata_aminuosi
目录下面的 ./css/* 和 ./js/* 内容,这样就可以删掉所有潜在的插件生成的脚本和样式表。(别删其他的,不然会后悔。)
回到 Nextcloud 根目录,掏出服务器 NC 管理用户,再掏它档件,用这个命令重新扫描并生成插件“缓存”文件。
sudo -u www-nextcloud php occ files:scan-app-data
再清空 CDN 和客户端浏览器缓存,正常加载。
轻松秒杀。