怎样强制浏览器更新 js 文件

2018-06-28 15:01:49 +08:00
 dufu

如题,大家一般都用什么方法强制浏览器更新 js 文件? 比如<script src="my.js?v=100"></script> 在引用的后面加一个类似版本号的标示符( v=100 ), 这样如果更新 my.js 文件,就把 v=100 变成 v=101 之类。

问题是用什么方法自动做这个事情,有什么框架之类的吗?

6025 次点击
所在节点    JavaScript
15 条回复
ragnaroks
2018-06-28 15:06:29 +08:00
?=输出这个会随着编译而自增的版本号
beastk
2018-06-28 15:07:00 +08:00
动态创建 js➕随机
cuzfinal
2018-06-28 15:07:23 +08:00
问你们公司的前端,
一般都是用 webpack 之类的打包工具,打包后的文件名带上哈希,每次打包都不一样。
chinvo
2018-06-28 15:08:34 +08:00
webpack 咯,自动打时间戳或者 hash
liyer
2018-06-28 15:22:49 +08:00
document.write("<script src=\"js.js?v=" + Math.random() + "\"><\/script>");
LeungJZ
2018-06-28 15:27:38 +08:00
webpack 每次打包只要文件被修改过,hash 值就变了。
mokeyjay
2018-06-28 15:44:44 +08:00
看样子你们没有在用 Webpack 之类的工具,那么可以这样:开发时直接给 js 后面接个 ?v=time() 即时间戳,强制每次更新。要打包上线了再手动给个固定版本号
dufu
2018-06-28 15:51:18 +08:00
webpack good !!!!
谢谢各位!!!
dufu
2018-06-28 15:52:24 +08:00
项目组还处在蛮荒时代,呵呵~~~~
Xrong
2018-06-28 19:19:47 +08:00
chrome 开启控制台,然后在设置里勾选 Disable cache (while DevTools is open)
julyclyde
2018-06-28 20:14:54 +08:00
@liyer 你这样会击穿 CDN 的
betulachen
2018-06-28 21:07:00 +08:00
了解一下刷版本号
qa2080639
2018-06-29 09:13:49 +08:00
webpack 不缓存 html CDN 缓存 JS CSS
e8c47a0d
2018-07-09 15:00:32 +08:00
webpack 这类,比如我用 nuxt 里面打包以后,那些有变化的 js 的文件名末尾的 hash 都会变化。
fan776783
2018-07-13 09:39:45 +08:00
开发的话,把 web 服务器的 expire 设成-1,生产用 webpack 或者 requireJs 的话打包可以直接加 hash 的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/466575

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX