我们有一个网站(纯html / js / css)。在我们的站点页面上,我们具有指向PDF文件的链接,这些链接看起来像这样:<a href="../files/myFile.pdf">My file link</a>
。因此,问题来了:有时我们需要更新PDF。我们更新这些文件,然后转到网站,按链接-我们会看到旧文件。 Ctrl+F5
或Firefox中的F5
-我们会看到更新的文件。不好我认为这个问题是由缓存引起的。
在我们的网站页面(包含链接的html页面)中,我们添加了以下标记:
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
但这没有帮助。我们如何避免客户端缓存?
我在这里读了一些问题。此解决方案来自stackoverflow。)另外,我也知道向页面URL添加随机参数,但是有些人说这是不好的方法。
请帮助解决此问题。我们可以仅使用JS来避免客户端缓存吗?也许服务器端的.htaccess
文件是可能的,但是我们在那里没有访问权限。
答案 0 :(得分:-1)
您可以在Nginx或Apache Web服务器中禁用缓存:
location /pdf_file_location {
root /your/site/public;
index index.html;
# kill cache
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
if_modified_since off;
expires off;
etag off;
}
有关此内容的更多信息,您可以阅读here
或者以最简单的方式,在URL中添加一个可变参数(您可以生成序列,时间戳,文件的固定版本或任何其他随机值):
<a href="../files/myFile.pdf?v=1580807492744">My file link</a>
?v=1580807492744
-如果值更改,则缓存将无法工作