可以通过nginx配置 no-cache 关闭缓存,以及webpack配置 版本号时间戳 来减少缓存,具体可以参考:https://blog.csdn.net/qq_28827635/article/details/109602150
nginx的location内增加如下配置:
if ($request_filename ~* .*\.(?:htm|html)$)
{
add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
}
if ($request_filename ~* .*\.(?:js|css)$)
{
expires 7d;
}
if ($request_filename ~* .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$)
{
expires 7d;
}
webpack优化配置参考如下,一般情况css不配置也没事,主要是js的配置:
这里分享一下我们公司目前研究的解决方案。
1. 在前端(我们是sword)。配置文件里设置hash:true
这样就会打上JS版本号,CSS版本号。
2. 并且在global.js把那个右上角提示手动刷新的提示(估计是antd pro自带的)改成强制自动刷新。(因为用户很可能会忽略无视掉这个弹框提示,导致页面一直不刷新)
3. 并在nginx和document.ejs设置不缓存index.html,和serviceWorker.js(这个是一种叫pwa的技术,导致了页面一直有离线缓存)。
不缓存index.html是因为umi打版本号只是打给了js和css,而页面进入读取的还是同一份index.html,他没有版本号,而css和js是通过index.html里面读取其版本号出来,然后进行加载的。
仅供参考
扫一扫访问 Blade技术社区 移动端