location.reload 不像本地那样更新远程服务器上的页面
Posted
技术标签:
【中文标题】location.reload 不像本地那样更新远程服务器上的页面【英文标题】:location.reload not updating page on remote server as it does locally 【发布时间】:2022-01-12 21:06:34 【问题描述】:我正在尝试在 POST 请求完成后重新加载页面:
window.location.reload();
在我的本地机器上,这是更新页面上的内容,同时在我使用 nginx 的远程服务器上,我必须强制刷新页面。
我试过了:
window.location = window.location
window.location.href = window.location.href
window.location.reload(true);
//reloading with a setTimeout function
//turning off the cache in nginx
【问题讨论】:
【参考方案1】:默认情况下,您的浏览器可能正在缓存某些远程文件(CSS、JS)。您可以将 Nginx 配置为始终检查是否存在新文件。如果文件未更改,则返回304 Not Modified
,或者与新文件一起返回200 OK
。
## Force browser to check for new JS & CSS files
location ~ .(css|js)$
add_header Cache-Control no-cache;
etag on;
此外,如果 DevTools 打开,浏览器的重新加载行为可能会受到影响。 Chrome 提供了"Disable Cache" 选项来强制执行新请求
【讨论】:
我尝试了各种在 nginx 中禁用缓存的方法,现在也尝试了建议的方法,但似乎没有成功。 为您的文件提供 Nginx 响应$ curl -kI https://example.com/my_file.js
脚本实际上在html模板中以上是关于location.reload 不像本地那样更新远程服务器上的页面的主要内容,如果未能解决你的问题,请参考以下文章
window.location.reload(false);window.location.reload(true);history.Go区别