CSS不会在浏览器中更新

时间:2015-09-14 19:17:30

标签: css browser-cache

所以我在我的新服务器上遇到了这个非常奇怪的错误,其中CSS不会在浏览器中更新。刷新和清除缓存不起作用。然后我打开FileZilla,看看更新的CSS文件是否实际上是使用FTP上传到服务器,然后当我将css文件的副本拖到我的桌面时,css文件会神奇地更新。 PHP文件更新得很好。

以下是我如何添加css:<link rel="stylesheet" type="text/css" href="css/stylesheet.css">

我不知道发生了什么以及如何解决这个问题,所以任何帮助都会非常感激!

2 个答案:

答案 0 :(得分:6)

您可以遇到任何问题,但我想在使用Chrome时提出一个很酷的提示。

在您的页面上, 打开开发人员工具 如果按住重新加载按钮,您将获得清除缓存和硬重新加载的绝佳选择!

enter image description here

确保在开发过程中获得“最新鲜”的副本非常方便。

<强>更新 至于你的场景(阅读更新后),它听起来像你的CSS文件的HTTP头问题。

检查CSS文件响应发送的HTTP标头。如果您没有指定缓存标头,它可能会尝试为您缓存。在开发时设置过期标题(过去),但在生产中将来会很远。在开发人员工具(大多数浏览器)的网络标签中,您应该能够看到这些标题,或者您可以使用类似Fiddler的标题来深入检查网络流量。

或者,如果您无法轻松调整HTTP标头,则设置远期过期标头,确保每次进行代码更改时文件的路径都会更改。选项包括:

  • 添加一个time()标记(总是更改(是啊!)但不缓存(boo))
  • 将版本控制#添加到文件URL(效果很好,但您需要在工具中正确管理更新)
  • 创建一个生成的“假”路径的文件,它会自动更改文件的任何修改...但是也会按预期加载URL,并将缓存设置为“永久”(最多365天根据HTTP规范)

答案 1 :(得分:2)

您可以尝试查询以强制浏览器在加载时加载新的CSS。要做到这一点

.wrapper {
  white-space: nowrap;
}

如果您对php感到满意,可以尝试使用以下代码强制浏览器加载最新加载的CSS。要做到这一点

<form>
  <span class="wrapper">
    <label for="FirstName">First:</label>
    <input name="FirstName" type="text" />
  </span>
  <span class="wrapper">
    <label for="MiddleName">Middle:</label>
    <input name="MiddleName" type="text" />
  </span>
  <span class="wrapper">
    <label for="LastName">Last:</label>
    <input name="LastName" type="text" />
  </span>
</form>

这将确保浏览器始终加载带有上次修改时间戳的新CSS。

希望这对你有所帮助。