[file_cache]文件缓存热
插件质量报告
插件:
file_cacheHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 app.boot 全站请求启动 否 5 - - - - admin.tabs 后台管理页标签栏(展示位置:后台Tab) 否 1 - - - - 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
未检测到插件数据表声明。
版本 1.2.2 更新:
文件缓存 · 更新日志
项目 内容 插件 ID file_cache插件名称 文件缓存 当前版本 1.2.2 插件简介 为未登录访客的页面提速:相同页面直接读取已保存的副本,减少重复处理,网页打开更快、服务器压力更小。 作者 feixiang 新版本发布时在文首追加一条,最新版本始终在最上面。
版本 日期 变更摘要 1.2.2 2026-09-11 修复控制台调试输出里的地址被反向代理写入主机名和重复斜杠 1.2.2(2026-09-11)
修复:控制台调试输出里的地址不再被反向代理写乱
更新前
开启「控制台调试输出」后,浏览器控制台里的地址会多出主机名和重复斜杠:
HIT · 37.08 ms · 6.9 KB · /www.example.com//index.php?a=topic&id=1 · 生成于 2026-09-11 10:20:33 · TTL 600s原因
站点前面有反向代理或伪静态时,服务器收到的
REQUEST_URI本身就是「主机名 + 真实路径」:REQUEST_URI = /www.example.com//index.php?a=topic&id=1插件只是如实打印这个地址,并非拼接错误。同一份插件部署在没有代理的环境里,显示的地址一直是对的。
修复方式
打印前先规范化地址:只保留问号之前的路径部分,用入口脚本名定位真实路径并截断,兜底去掉开头形如域名的一段,再折叠重复斜杠;查询串原样保留,不删改访客参数。
更新后
服务器收到的地址 控制台显示 /www.example.com//index.php?a=topic&id=1/index.php?a=topic&id=1/index.php?a=topic&id=1/index.php?a=topic&id=1(无代理环境输出不变)/www.example.com//topic/1/topic/1(伪静态地址)/www.example.com//补充说明:
- 日志中地址前后的
·是状态分隔符,不是斜杠。 - 地址来自访客请求,只做去噪、不做改写:地址栏里确实带的参数会照实显示,便于逐条核对。
- 缓存状态、耗时、页面体积、生成时间和 TTL 的输出格式均未改变。
升级方法
- 用新文件覆盖
app/plugins/file_cache/plugin.php。 - 进入后台「插件」页,对该插件执行一次「同步」。
- 无需清空缓存,无需重新保存设置。
兼容性
- 配置项、缓存键、缓存文件格式均未变化,升级前后生成的缓存文件可以继续使用。
- 控制台日志是响应末尾临时附加的,不写入缓存文件;已有缓存被命中时同样显示新格式。
- 未修改核心文件,未影响其他插件。
- 仅调整日志文本的显示方式,缓存命中、回源与失效逻辑不变。
验证结果
php -l语法检查通过。- 文件为 UTF-8 无 BOM、LF 换行、无尾随空白,共 680 行。
- 按真实请求回归,下列形态全部符合上表:
/主机名//index.php?a=topic&id=1、/index.php?a=topic&id=1、/主机名//topic/1、/主机名/、//index.php。
发布页更新日志(精简版,可直接粘贴)
1.2.2:修复开启「控制台调试输出」后,日志里的地址会带上服务器主机名和重复斜杠的问题,现在显示为与地址栏一致的地址(如 /index.php?a=topic&id=1)。无需清空缓存。- 日志中地址前后的
- dasheyang2026-09-11
这个不错
- webmaster2026-09-11
和OPcache 一起开,有增益吗?
不知道呢,理论上缓存开1个就行了,多开也没什么意义,我是free.fr的免费空间,它默认没开OPcache,也开不了,所以才开发这个插件,让它访问更快一点,开启后runtime_info这个插件显示的就不准确了,勾选调试输出本来想在下面接着显示缓存信息,想着页面美观,需要在F12查看缓存状态。
- bbs1org2026-09-11
不错。直接生成html文件,更省资源
- bbs1org2026-09-11
经官方验证,效果很明显。值得安装启用。
- bbs1org2026-09-11
- bbs1org2026-09-11
版本 1.2.4 更新:
发帖、回帖、编辑都不会清空缓存,页面按各自的缓存时间自然过期,游客最多会看到稍旧的内容;帖子被删除时,帖子页会在下次访问时自动作废。需要立刻生效时用下方「缓存维护」手动清空。
按哈希前 2 位分 256 个子目录存放 - bbs1org2026-09-11
版本 1.2.6 更新:
serve() 只读首行,304 不碰正文、去掉 max_files,一切为了性能

