【问题标题】:Browser caching static files?浏览器缓存静态文件?
【发布时间】:2017-11-09 11:51:50
【问题描述】:

当我使用由后端(Django/Node)提供的静态文件时。我注意到即使我从后端静态文件夹中删除了静态文件。只要我服务于同一个 localhost 端口,即使在我重新启动服务器后,静态图标或图像仍会显示。

例如我删除了以下html:

<link rel="shortcut icon" href="assets/images/favicon.png">

只要我为同一个localhost:port 服务,标签图标仍然会显示。

  • 为什么会这样?
  • 我该如何禁用它?

【问题讨论】:

  • 它只是一个缓存。它可能会在几天后消失,或者您可以进行硬刷新: cmd + shift + R ( ctr + shift + R 在窗口上)并再次检查。

标签: google-chrome static-files


【解决方案1】:

浏览器缓存静态文件。测试时,禁用缓存很有用。在 chrome 中,转到开发者工具,点击 Network 选项卡,然后选中“Disable cache”。

【讨论】:

  • 有没有办法通过命令行选项或配置文件进行设置?
【解决方案2】:

为客户处理网站时,需要向静态内容文件路径添加版本。

例如:

<link rel="shortcut icon" href="assets/images/ver-1/favicon.png">
<link rel="shortcut icon" href="assets/images/ver-2/favicon.png">
<link rel="shortcut icon" href="assets/images/ver-3/favicon.png">

甚至:

<link rel="shortcut icon" href="assets/images/favicon-2017-11NOV-08.png">
<link rel="shortcut icon" href="assets/images/favicon-2017-12DEC-25.png">
<link rel="shortcut icon" href="assets/images/favicon-2018-01JAN-01.png">

使用这些或类似方法,意味着无需修改任何人计算机上的浏览器设置。

更改文件名将强制所有浏览器从服务器检索新文件,并完全忽略旧文件的浏览器缓存。

【讨论】: