用 webpack 打包后,文件被分成了一个入口 html 文件和许多 js 文件
然后再上传到服务器上
这个时候再访问网站,浏览器仍然在请求原来的静态 js 文件导致 404 错误,且这个静态文件的来源是 from cache
比如未更新前的静态资源名称 post.chunk.a9059143.js
更新后的静态资源名称 post.chunk.1c9dff52.js
浏览器访问更新后的静态资源仍然是未更新前的 js 文件,导致 404 错误
如果清除缓存或者进入 chrome 的访客模式,网站能够正常访问
1
Showfom 2017-04-11 14:29:25 +08:00
ctrl + F5 强制刷新
|
2
gamexg 2017-04-11 14:35:31 +08:00
你的入口 html 被缓存了。
检查 nginx 等配置,是不是设置了缓存时间。 |
4
gimp 2017-04-11 14:37:00 +08:00
缓存有失效时间的
|
6
vipwpcom 2017-04-11 14:45:54 +08:00
可以加上版本号
|
7
learnshare 2017-04-11 14:50:03 +08:00
index.html 设置缓存时间,尽量短比较好
|
8
xilixjd OP @learnshare 问一下怎么设置,在 nginx 上设置还是 html 文件?
|
10
misaka19000 2017-04-11 15:00:59 +08:00 via Android
@xilixjd 谷歌“ Nginx 缓存失效时间就可以了”
|
12
think2011 2017-04-11 15:07:56 +08:00
@Showfom 这是要让每个用户换浏览器吗... Orz
楼主的入口文件( index.html )被缓存了,当然请求的也是旧的了,只要保证每次发布 index.html 都是新的,那么问题就解决了。 |
13
think2011 2017-04-11 15:09:00 +08:00
我倒是困惑单页面应用,如果用户正在浏览,这时更新发布了,应该怎么处理..
|
14
nfroot 2017-04-11 15:24:15 +08:00
|
15
msg7086 2017-04-11 15:47:53 +08:00
难道你打包程序会没事删掉旧的资源文件?
|
18
loading 2017-04-11 19:41:54 +08:00 via Android
html 被缓存了
|
19
RE 2017-04-11 23:07:03 +08:00 via iPhone
旧版本的 js 不要立马删掉啊… 要么就不要在文件名中带入版本号,直接替换旧的… 或者 html 请求的时候用 build.js?v=123 来控制版本
|