首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制浏览器重新加载页面(忽略缓存)

强制浏览器重新加载页面(忽略缓存)
EN

Stack Overflow用户
提问于 2017-06-08 04:12:17
回答 2查看 1.8K关注 0票数 1

当我在我的web服务器上设置静态资源(如js、css、模板)时,我忘记为它们设置缓存周期。默认情况下,web服务器将其设置为“永远缓存”(这是tomcat服务器和spring )

代码语言:javascript
复制
<mvc:resources mapping="/resources/**" location="/resources/" />

如果不指定cache-period,那么服务器就会发送像“永远缓存它”这样的标题。现在我试着用不同的方法来解决这个问题:

  1. 尝试更改静态资源url

代码语言:javascript
复制
mvc:resources mapping="/static/**" location="/resources/" cache-period="10800" 

但是这并没有帮助(我认为浏览器缓存了整个html页面,但没有)

  1. 我试图使用JS强制重新加载页面: Location.reload(真)

但这并没有多大帮助

如何强制浏览器重新加载缓存的文件?我没有发送任何缓存头来缓存我的html页面。

EN

回答 2

Stack Overflow用户

发布于 2017-06-08 04:15:53

可以将版本号附加到URL

代码语言:javascript
复制
http://mydomin.com/resources/file.css?version=1

例如;

代码语言:javascript
复制
<html>
    <head>
        <link href="resources/file.css?version=1" type="text/css" rel="stylesheet"/>
    <head>
    <body></body>
</html>
票数 3
EN

Stack Overflow用户

发布于 2018-05-09 23:38:08

我知道这里没有标记jQuery或Ajax,但是重新加载.js文件的最简单方法是使用jQuery getScript()函数,这只是执行ajax http请求的一种快捷方式。

代码语言:javascript
复制
$.getScript('../path_or_URL_to_your_js_file.js');

这将加载附加时间戳的外部资源,因此默认情况下它将从服务器加载而不是缓存。在调用getScript函数之前,您只需要确保jquery包括在内。

为了防止缓存版本的.css文件,您可以使用jQuery/ajax在页面加载后动态地在html头部构建链接元素,这将阻止加载缓存的资源。

代码语言:javascript
复制
$('<link/>', {
   rel: 'stylesheet',
   type: 'text/css',
   href: 'path_to_the.css'
}).appendTo('head');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44426498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档