【发布时间】:2020-03-06 04:34:30
【问题描述】:
我需要找到一个在访问包含 HTML 序列的页面时始终禁用浏览器缓存的 HTML 序列。我最近的尝试(有时仍然失败)如下 - 失败被定义为浏览器呈现页面的先前版本的缓存(在页面文件或某些引用文件(如图形图像文件)在本地服务器中被修改之后) .
这里的关键词是“有时”——我尝试禁用缓存似乎有效,但并非总是如此,这就是问题所在。
为什么?这(不需要的缓存)使开发(HTML 文件在每次迭代中以某种方式发生变化)非常不方便,因为浏览器有时(但并非总是)呈现以前存储的页面版本。
是的,我知道禁用缓存会使渲染变慢,但是慢并且看到变化比快速看不到变化要好得多,然后必须进入浏览器选项来清除缓存(啊!)
这是一个小型、简单、封闭(不上网)的单用户功能。
该应用程序基于 HTML 网页,只能与 firefox 浏览器一起使用(无需支持其他浏览器、firefox 版本或操作系统)。
服务器是“开箱即用”的 IIS,除了添加了 index.html 文件和 IIS 提供的页面集的路径。操作系统是 Windows 10 64 位。
(唯一的)客户端是 Firefox 64 位当前版本(它会不时更新并且是最新的)。没有 javascript 是可能的,只有 HTML 和 CSS。
我的 html 文件都以这个序列开头:
<!DOCTYPE html>
<html>
<head>
<!-- force browser to reload every time -->
<meta http-equiv="cache-control" content="no-cache, must-revalidate, post-check=0, pre-check=0" />
<meta http-equiv="cache-control" content="max-age=0" />
<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" />
<style>
...
(and so on)
我无法更改浏览器设置以禁用缓存,因为浏览器也用于其他目的。
我无法更改服务器 (IIS) 设置。
我不能以任何方式、形状或形式使用 javascript 来解决这个问题,因为应用程序将完全是 HTML + CSS。
我不能介绍任何其他的服务器端编程语言或环境(只是手工编辑的 HTML 文件。)
如果这有助于隔离问题,我可以提供更多信息。
如果这不是提出这个问题的正确位置,或者我没有正确地形成问题,请指出这一点,希望能提供有关如何帮助我获得帮助的指导。
谢谢!
【问题讨论】:
-
阅读this
-
引用:[...] 第二个会覆盖第一个,第四个会覆盖第三个,因为 http-equiv 声明
-
我认为您可以按 ctrl+f5 或 ctrl+[单击刷新按钮] 来执行新请求。或者我确信有一个浏览器扩展程序可以帮助您满足您的需求。 Idk 关于 html/css 的更改。
-
不是一个很好的解决方案,但如果它确实是一个缓存问题,您可以尝试将无意义的 get 参数添加到 url 以获取新副本。 mysite.sometld?a=7 然后 a=93, dog=cat 或其他任何东西,只要它改变。在您的开发浏览器上禁用缓存可能是要走的路。可能有一种方法可以禁用整个站点或所有站点的缓存,或者您可以下载开发人员版本的 firefox 并在消费者安装时保持缓存设置正常(我认为您可以同时拥有两者)mozilla.org/en-US/firefox/developer