62

我正在创建一个网站,但是当我对网站上的样式表进行更改并刷新网站时,没有任何更改。

我尝试使用查看源工具来检查它stylesheet.css并且它也没有更新。但是当我进入系统的根目录时,它就是。

我必须等待至少 20 分钟才能在我的网站上看到更新,谁能告诉我为什么我没有立即看到更改?我的浏览器、计算机或服务器有问题吗?

我还尝试删除我的 cookie、缓存和历史记录,但仍然无效。

4

15 回答 15

197

如果您的网站还没有上线,而您只是想以您满意的时间间隔更新样式表,请使用:Ctrl+ F5

在 Mac OS(在 Chrome 中)使用:Cmd+ Shift+ R

这将强制您的浏览器重新加载并刷新与网站页面相关的所有资源。

因此,每当您更改样式表中的某些内容并想查看新结果时,请使用它。

于 2012-10-04T00:00:44.513 回答
55

很可能该文件只是被服务器缓存。您可以禁用缓存(但记得在网站上线时启用它),或者修改href您的link标签,这样服务器就不会从缓存中加载它。

如果您的页面是由某种语言(如 php)动态创建的,您可以在值的末尾添加一些变量href,例如:

<link rel="stylesheet" type="text/css" href="css/yourStyles.css?<?php echo time(); ?>" />

这将在文件路径的末尾添加当前时间戳,因此它将始终是唯一的,并且永远不会从缓存中加载。

如果您的页面是静态的,则您必须自己管理这些变量,因此请使用以下内容:

<link rel="stylesheet" type="text/css" href="css/yourStyles.css?version=1" />

在对文件内容做了一些更改后,更改version=1version=2等等。

如果您希望从缓存 css 文件中禁用缓存,请参阅您的服务器类型文档(在 apache、IIS、nginx 等上的做法不同)或在https://serverfault.com/上询问/搜索问题

假设 IIS - 在 <system.webServer> 下添加密钥并在根目录或相关文件夹中使用正确的设置就可以了。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <caching enabled="false" enableKernelCache="false" /> <!-- This one -->
    </system.webServer>
</configuration>

也就是说,有时仍然需要回收应用程序池来“碰撞”CSS。因此:单独禁用 IIS 缓存并不是 100% 有保证的解决方案。

对于浏览器:有一些关于在SuperUser上细粒度控制 FF 上的本地缓存的注释。

于 2012-10-03T23:41:13.550 回答
12

查看文件是否被缓存的最简单方法是将查询字符串附加到<link />元素,以便浏览器重新加载它。

为此,您可以将样式表引用更改为类似

<link rel="stylesheet" type="text/css" href="/css/stylesheet.css?v=1" />

注意v=1部分。您可以在每次制作新版本时更新它以查看它是否确实被缓存。

于 2012-10-03T22:54:22.113 回答
2

这可能不是 OP 的问题,但我遇到了同样的问题,并通过刷新然后在我的 cpanel 上禁用 Supercache 来解决它。也许像我这样的其他新手不会知道许多托管服务提供商会缓存 CSS 和其他一些静态文件,并且这些缓存的旧版本的 CSS 文件会在您在服务器上编辑文件后在云中保留数小时。如果您的网站在您编辑旧版本的 CSS 文件后提供它们,并且您确定您已清除浏览器缓存,并且您不知道您的主机是否正在缓存内容,请在尝试其他任何内容之前先检查一下复杂的建议。

于 2015-06-27T04:58:10.873 回答
1

我有一个类似的问题,只是因为更新速度很慢而变得更加令人恼火。在网站上工作以挽救我的生命时,我无法让我的更改生效(尝试各种方式清除我的浏览器缓存和 cookie),但如果我在当天晚些时候回到该网站或打开另一个浏览器,那里他们是。

我还通过在主机的 cpanel(Siteground)上禁用 Supercacher 软件解决了这个问题。您还可以在禁用之前对各个目录使用“刷新”按钮来测试是否是它。

于 2016-06-03T17:27:18.737 回答
1

如果它被缓存在服务器上,则您无法在浏览器中执行任何操作来解决此问题。您必须等待服务器重新加载文件。您甚至无法删除文件并重新上传。如果您使用像 Cloudflare 这样的缓存服务器,这可能需要更长的时间(它甚至可以在服务器重启后继续存在)。您可以重命名它并加载副本。

于 2019-03-13T18:34:30.997 回答
1

就我而言,由于我无法将缓存破坏时间戳附加到 css url,结果证明我必须手动刷新 IIS 7.5.7600 中的应用程序池。

追求所有其他途径,直到完全禁用站点和本地浏览器的缓存(就像完全禁用两者一样),仍然没有成功。“重新启动”该网站也无济于事。

和我一样的位置? [站点名称] > “应用程序池” > “回收”是你最后的手段...

于 2017-06-22T15:35:54.367 回答
0

这可能是您的服务器配置的结果,一些托管服务提供商在您的域上启用了“Varnish” 。这个缓存 HTTP 反向代理,用于加速传递。可以尝试禁用 cpanel 上的清漆(假设你有一个)并检查是否是这样。

于 2017-01-24T09:51:27.777 回答
0

作为参考,我正在 Windows 11 机器上开发,首先运行以下 2 个命令

$env:NODE_ENV="开发"

$env:TAILWIND_MODE="手表"

现在运行您的应用程序

供参考:https ://github.com/tailwindlabs/tailwindcss/issues/4081

于 2022-01-11T05:28:12.747 回答
0

我有同样的问题,我使用000webhost来托管我的网站,我也使用cloudflare。我已经从浏览器中禁用了所有缓存设置,然后尝试更改一些 css 并使用硬刷新
(shift + 单击刷新按钮、ctrl + f5 等)重新加载页面,没有任何改变

事实证明,问题来自cloudflare 缓存。如果您使用的是 cloudflare,您可以在 cloudflare 中启用开发模式,它会暂时绕过您的缓存,让您可以实时查看源服务器的更改。

对于仍然遇到此问题的人,我希望这可以帮助您

于 2021-09-30T19:17:44.267 回答
-1

![清除缓存] Ctrl+Shift+Delete http://i.stack.imgur.com/QpqhJ.jpg 有时需要硬刷新才能看到更新生效。但是一般的网络用户不太可能知道什么是硬刷新,你也不能指望他们继续刷新页面,直到事情理顺。这是一种方法:<link rel="stylesheet" href="style.css?v=1.1">

于 2015-01-26T16:23:40.083 回答
-1

我也遇到了这个问题,很多人似乎建议强制重新加载您的页面,这在诸如您在服务器上运行它的情况下无法解决问题。我相信这种情况下的最佳解决方案是给 你的 css 加上时间戳

  1. 这就是我在 Django 模板中的做法:

<link rel="stylesheet" href="{% static 'home/radioStyles.css' %}?{% now 'U' %}" type="text/css"/>

在哪里添加?{% now 'U' %}到你的 css 文件的末尾可以解决这个问题。

在哪里?Wednesday 2nd February 2020 12PM(当前日期)似乎可以解决问题,我也注意到只是把时间也解决了。

于 2020-02-12T17:07:26.363 回答
-2

我有同样的问题。原因之一是,我的应用程序被缓存并且我正在执行本地构建。

如果上述评论都不起作用,我宁愿删除 css 文件并重新添加它并进行更改。

于 2019-11-12T11:03:21.397 回答
-2

首先,尝试强制重装或清除缓存空追和硬重装。您可以通过按F12然后右键单击它来执行此操作。

第二种解决方案:检查您的 HTML 基本标记。您可以从这里了解更多信息。

于 2021-02-08T06:40:12.663 回答
-4

不要更新 style.css 中的样式,而是创建自己的新样式表并导入 style.css

your-own-style.css
      .body{
           /*any updates*/
       }

在 style.css 中导入 your-own-style.css

@import url("your-own-style.css");
于 2015-02-03T08:49:27.263 回答