Mat*_*kic 1 html javascript browser-cache
我有一个页面,其中有包含用户数据和每一行的表格(每个用户都有自己的名片,这是一个引用存储在服务器上的 pdf 的标签。
<td class="business_card">
<a href="/static/users_documents/9/business_card.pdf" target="_blank">
<img src="/static/images/business_card.png" name="business_card" alt="business_card_image">
</a>
</td>
Run Code Online (Sandbox Code Playgroud)
当用户发送 post 请求时,服务器上以前的 pdf 文件被删除并创建新的 pdf。但是,问题是浏览器缓存旧版本的文件,我每次都必须按CTRL+F5硬刷新缓存,然后我才能从服务器而不是缓存中看到文件。
我是否需要使用 JavaScript 来清除缓存?
另外,我对页面的标记引用如下:
https://192.168.2.244/static/users_documents/9/business_card.pdf
Run Code Online (Sandbox Code Playgroud)
该页面的 html 是由 Firefox 创建的,用于显示我的 pdf 文件。
一些可能有帮助的附加信息是我在 Ubuntu 16.04.3 上使用 Nginx 服务器。
为了扩展 @hindmost 在评论中所说的内容,如果 URL 附加了查询,并且查询的数字高于该文件之前缓存的版本,则浏览器将不会使用文档的缓存版本。?v=2通常这可以通过在 url 中添加或类似的内容来完成。使用Date.now()可确保此数字始终高于任何先前缓存的版本。
url + '?v=' + Date.now();每次都会产生一个唯一的版本号,并且由于时间只向前计数,因此该数字将始终大于之前的版本。
您还可以通过使用Cache-Control服务器上的HTTP 标头来解决此问题。
使用Cache-Control: no-cache, no-store, must-revalidate将告诉浏览器不要缓存 URL 并始终请求一个新文件。
从好的方面来说,由于它不使用 JavaScript,这也适用于禁用 JavaScript 的浏览器。
来源:MDN 上的缓存控制
| 归档时间: |
|
| 查看次数: |
1719 次 |
| 最近记录: |