【问题标题】:Browsers won't reflect changes made in html file浏览器不会反映在 html 文件中所做的更改
【发布时间】:2013-02-07 05:46:04
【问题描述】:

我正在开发一个网站,但遇到了一个非常令人不安的问题。我的代码不会在任何浏览器中刷新,这不仅意味着 Internet Explorer,还意味着 Google Chrome 和 Firefox。

问题是,在以前版本的 HTML 文件中,我有一个带有链接的 div (<a href="">Send request</a>)。今天,我把那个链接改成了一个段落(<p>Send request<p>)。

当我加载我的页面时,它仍然显示链接。当我注释掉该段落并重新加载页面时,没有链接并且我的段落已被签出。我在 Chrome 中检查了源文件,是的,源文件是正确的。但是,浏览器仍然显示一个不存在的链接,删除浏览器历史记录也无济于事。

有什么想法吗?

【问题讨论】:

  • 听起来像是服务器上的缓存问题。
  • 尝试在 Chrome 中关闭缓存。
  • 清除浏览器缓存会发生什么?你可以做的是在你所有的资源后面加上?time=<?php echo microtime(true); ?> 例如:<script src="./myscript.js?time=<?php echo microtime(true); ?>"/>
  • 与其查看源代码,不如直接用检查器检查元素? (在 chrome 上,右键单击 -> 检查元素)如果你看到它,它应该在那里。您在“源代码”中看到的代码是来自服务器的代码在任何 javascript 执行之前
  • 可以把你的 html 放到 jsfiddle 上吗?

标签: html css internet-explorer google-chrome firefox


【解决方案1】:

问题可能是由于您的浏览器缓存了 HTML 页面。 这个问题可以通过 -

  • 清除浏览器缓存

  • 尝试使用错误查询,例如 mypage.html?random=6 此方法会导致浏览器完全根据 GET 请求重新加载页面。

  • 使用元标记如下

    <meta http-equiv="pragma" content="no-cache" />
    

    这有时还伴随着另一个元数据,如下所示

    <meta http-equiv="expires" content="-1" />
    

    据观察,有时上述两个标签在 IE 中都会被忽略。 建议的解决方法是使用标签两次,即在页面开始和结束时。这是由于浏览器在页面加载时首先填充了 64K 缓冲区的原因。如果缓冲区没有被填满,“pragma”就会被忽略。将其放在文档末尾有助于无缓存。

【讨论】:

    【解决方案2】:

    另一个技巧是在你的 html 标签后面添加一个错误的查询并强制浏览器获取一个新页面。

    例如:

    MySite.html -> MySite.html?q=1、MySite.html?q=2、MySite.html?q=3 等等。

    正如其他人所提到的,您的主机提供商似乎启用了缓存。

    【讨论】:

      【解决方案3】:

      如果您使用的是 Firefox,请安装名为 web developer 的扩展程序。

      然后转到禁用 -> 禁用缓存 -> 禁用整个缓存。

      如果您使用 Chrome 或 Chrommium 打开开发者萤火虫 (f12),然后转到设置(右下角)并启用带有“禁用缓存”文本的复选框。

      在这两种情况下,请记住使用 control+shift+R 为网页充电(不同时间:P)。

      请记住在您结束工作时禁用此选项。

      【讨论】:

      • 谢谢...我安装了插件并使用 ctrl+shift+r 刷新了大约 20 次页面,但它仍然没有反映对 html 文件所做的最新更改...
      • 您是否启用(禁用缓存选项)我在解决方案中所说的?
      • 所以问题是浏览器和服务器之间的中间件。可能是服务器本身内部的缓存服务器或代理。您使用的是哪个服务器?
      • @JoséCabo - 他正在用 notepad++ 编写网站。 :)
      • @malutan.mircea 如果您从本地文件中获取 HTML,那不是问题
      【解决方案4】:

      你可以试试下面的

      1. 清除浏览器缓存。
      2. 干净构建 Web 应用程序

      以隐身或隐私浏览模式打开浏览器

      尝试在您的 HTML 中添加元标记

       <meta http-equiv="pragma" content="no-cache" />
      

      【讨论】:

      • 请求的 HTTP 状态代码是什么意思? HTTP 200 或 HTTP 304?- Chrome 开发工具 -> 网络请求。如果它没有在隐身模式中显示,则代码本身可能有问题。任何 JS 错误?
      • 您使用的是哪个 IDE? .. 如果 Eclipse -> 服务器选项卡 -> 右键单击​​ -> 清理(它将丢弃所有已发布的状态)
      • 只是为了清楚我正在用记事本++编写网站。它还没有部署,它仍在创建过程中......它不是什么大的。只是一个简单的网站,具有简单的功能和一些javascript效果..
      猜你喜欢
      • 1970-01-01
      • 2017-10-08
      • 2016-09-20
      • 1970-01-01
      • 2019-06-13
      • 2019-02-26
      • 1970-01-01
      • 2021-03-06
      • 2022-01-11
      相关资源
      最近更新 更多