阻止某些网页上的HTML缓存

时间:2018-05-11 15:57:12

标签: html ruby-on-rails ruby html5 browser-cache

我正在尝试仅缓存我的资产,而不是我网站上几页的实际HTML页面。

目前我的缓存控制标头设置为:

cache-control: max-age=0, no-cache, must-revalidate

我的.htaccess文件

# 1 Day for most static assets
<filesMatch ".(css|jpg|jpeg|png|gif|js|ico|JPG|woff)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>

在移动设备上,当用户打开我的网站浏览到给定页面,关闭其浏览器应用程序然后重新打开时,页面将从缓存加载。

当我设置以下标题时,移动浏览器会在重新打开浏览器时正确地重新加载页面,但现在它会重新加载所有内容(javascript,css,图像等)。我只想重新加载html。

response.headers["Cache-Control"] = "no-cache, no-store"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"

我该如何做到这一点?

提前致谢。

更新了.htaccess文件

<IffilesMatch ".(css|jpg|jpeg|png|gif|js|ico|JPG|woff)$">
Header set Cache-Control "max-age=2592000, public"
</If>
<Else>
Header set Pragma "no-cache"
Header set Expires = "0"
Header set Expires = "Fri, 01 Jan 1990 00:00:00 GMT"
Header set Cache-Control = "no-cache, no-store"
</Else>

1 个答案:

答案 0 :(得分:1)

尝试使用完整的标头集,以确保您能够访问所有浏览器。

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

这通常涵盖了包括移动设备在内的跨浏览器兼容性的多个问题。