每次把修改后的vue项目build生产的打包文件丢到服务器后,发现还是上一次的效果,新修改的不起效,每次都需要ctrl+F5
强制刷新页面,为啥?
vue cli不是给静态资源css、js、img自动加了哈希么,怎么还会有缓存?
经过多方调试,发现是因为入口文件index.html
需要在服务器
端设置禁止缓存。
window服务器设置IIS禁用html缓存
-
找到对应项目,切换到内容视图,选择index.html,设置
http相应标头
:添加`Cache-Control`,值为:`no-cache` 复制代码
-
设置常用标头
设置常用http响应头,勾选 使WEB内容过期 》立即, 确定保存 复制代码
Linux服务器设置nginx禁用html缓存
只配置了不缓存html和htm,js,css等文件没有做处理,是因为我们前端编译发布代码时,如果某个js或css有更新,会自动在文件名上加时间戳、哈希值,这样一发新版时,只要客户端请求了新版的html,就会自动找到新的js、css,没有更新的js、css还会继续用缓存,这样既不会太大的影响网页的访问速度,也能保证更新的代码不走缓存。
server {
listen 80;
server_name test.exmaple.cn;
location / {
if ($request_filename ~* .*\.(?:htm|html)$) ## 配置页面不缓存html和htm结尾的文件
{
add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
}
root /web/;
index index.html;
try_files $uri $uri/ /index.html =404;
}
}
复制代码
暴力禁止所有静态资源缓存
location ~.*\.(js|css|html|png|jpg)$
{
add_header Cache-Control no-cache;
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END