设 version 为 false 可彻底禁用 URL 时间戳;需确保所有 layui.config 调用均显式声明 version: false,避免被覆盖,并手动清理 layui.cache 中残留的带参 URL。

layui.config 的 version 参数设为 false 就能去掉时间戳
默认情况下,layui.config({ version: true }) 会让所有模块 URL 自动追加 ?v=1727827440123 这类时间戳,目的是强制刷新缓存。但如果你希望资源走 CDN 缓存、或调试时不想被时间戳干扰网络请求,直接把 version 设为 false 即可。
注意:这不是“关闭版本号”,而是彻底不加任何查询参数——Layui 不会 fallback 到其他默认值,false 是唯一能跳过拼接逻辑的取值。
-
version: '2.9.14'→ 拼成?v=2.9.14 -
version: true→ 拼成?v=1727827440123(当前毫秒时间戳) -
version: false→ 不加任何v=参数,URL 干净
设了 false 却还有时间戳?检查是否被二次 config 覆盖
常见错误是页面中多处调用 layui.config,后一次覆盖前一次。比如:
layui.config({ version: false });
// … 后面某处又写了
layui.config({ base: '/js/modules/' }); // 没传 version,Layui 会按内部默认行为补上时间戳!
因为 layui.config 是累加式合并,不传 version 就等于没改,它会保留上次设置或使用内置默认(早期版本默认 true,2.8+ 默认 0,但行为仍可能触发时间戳)。
- 确保所有
layui.config调用都显式带上version: false - 不要在
layui.use回调里再调config,那已晚于模块加载时机 - 用浏览器 DevTools 的 Network 面板确认 JS 请求 URL,看是否真没
v=
CDN 场景下必须手动配 extend 的完整 URL
当 version: false 生效后,extend 里指向 CDN 的模块(如 Vue)不会受影响,但你得自己保证 URL 是完整的:
layui.config({
version: false,
extend: {
vue: 'https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js' // ✅ 正确:含协议、路径、后缀
// auth: 'auth/authModule' // ❌ 错误:这个会被自动加 base 路径,但没 v 参数了
}
});
关键点:CDN 地址必须是绝对 URL,且自带 .js 后缀;否则 Layui 会尝试拼 base + 模块名 + .js,而 version: false 又不加参数,最终请求路径可能 404。
真正要禁用所有版本参数,连自定义 key 也得清空
极少数场景下,你可能还通过 layui.cache 或手动修改 layui.modules 注入了带 v= 的 URL。此时仅设 version: false 不够——Layui 加载模块时优先查 cache,如果缓存里已有带时间戳的地址,它就直接用那个。
安全做法是在 layui.config 后、layui.use 前,手动清理:
layui.config({ version: false });
for (let key in layui.cache) {
if (layui.cache[key].url) {
layui.cache[key].url = layui.cache[key].url.replace(/\?.*$/, '');
}
}
这个步骤容易被忽略,尤其在老项目升级或嵌入多个 Layui 实例时。一旦发现某个模块 URL 还带着时间戳,八成是 cache 没清干净。











