当我在我的web服务器上设置静态资源(如js、css、模板)时,我忘记为它们设置缓存周期。默认情况下,web服务器将其设置为“永远缓存”(这是tomcat服务器和spring )
<mvc:resources mapping="/resources/**" location="/resources/" />如果不指定cache-period,那么服务器就会发送像“永远缓存它”这样的标题。现在我试着用不同的方法来解决这个问题:
mvc:resources mapping="/static/**" location="/resources/" cache-period="10800" 但是这并没有帮助(我认为浏览器缓存了整个html页面,但没有)
但这并没有多大帮助
如何强制浏览器重新加载缓存的文件?我没有发送任何缓存头来缓存我的html页面。
发布于 2017-06-08 04:15:53
可以将版本号附加到URL
http://mydomin.com/resources/file.css?version=1例如;
<html>
<head>
<link href="resources/file.css?version=1" type="text/css" rel="stylesheet"/>
<head>
<body></body>
</html>发布于 2018-05-09 23:38:08
我知道这里没有标记jQuery或Ajax,但是重新加载.js文件的最简单方法是使用jQuery getScript()函数,这只是执行ajax http请求的一种快捷方式。
$.getScript('../path_or_URL_to_your_js_file.js');这将加载附加时间戳的外部资源,因此默认情况下它将从服务器加载而不是缓存。在调用getScript函数之前,您只需要确保jquery包括在内。
为了防止缓存版本的.css文件,您可以使用jQuery/ajax在页面加载后动态地在html头部构建链接元素,这将阻止加载缓存的资源。
$('<link/>', {
rel: 'stylesheet',
type: 'text/css',
href: 'path_to_the.css'
}).appendTo('head');https://stackoverflow.com/questions/44426498
复制相似问题