修复:改了 app.js 却没升资源版本,浏览器一直用旧 JS (#4)
用户报「图片最多上传 0 个,请先移除已上传的文件」——JS 弹的。 ## 根因:不是逻辑没写对,是新代码根本没加载 #4 已经把拦截改成 `maxCount > 0 && countOf(kind) >= maxCount`, 但**忘了把 FB_ASSET_V 加 1**。页面仍然输出 app.js?v=13, 浏览器直接从缓存读旧的 app.js(旧的判断是 `countOf >= maxCount`, maxCount=0 时 `0 >= 0` 为真,一个都不许传)。 ## 修法 FB_ASSET_V 13 → 14。这一改同时覆盖 style.css 与 app.js, 用户下次刷新就会拉到新文件。 ## 新增检查脚本 `_tooling/feedlite/fb_asset_version_check.py`: 对比「最后一次改 assets/ 的提交」与「最后一次改 FB_ASSET_V 的提交」, 前者更新就报错。改前端资源却忘升版本这类问题肉眼极难发现, 必须用规则卡住。 用脚本自查当前仓库,确认本提交修完后转为合规。 ## 教训 改 assets/ 下任何文件 → **必须同时把 lib/bootstrap.php 的 FB_ASSET_V 加 1**, 这是硬配套动作,写在 README 里但这次没执行到位。
This commit is contained in:
+1
-1
@@ -8,7 +8,7 @@ if (!defined('FB_ROOT')) {
|
||||
define('FB_ROOT', dirname(__DIR__));
|
||||
// 静态资源版本号:改 assets/ 下的 css/js 后把这个数字 +1,
|
||||
// 让浏览器与 CDN 缓存失效。全站只此一处,别再往页面里写死数字。
|
||||
if (!defined('FB_ASSET_V')) { define('FB_ASSET_V', 13); }
|
||||
if (!defined('FB_ASSET_V')) { define('FB_ASSET_V', 14); }
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user