如何防止网页上的CSS缓存?

haa*_*nsi 20 .net html css asp.net xhtml

我正在学习开发xhtml,css网页.我经常在CSS中进行更改,但由于浏览器缓存而没有反映在页面上,如果我手动清除cahceing它会显示最新的代码效果.有什么东西可以放在代码中让浏览器不要缓存内容吗?请任何建议

mag*_*tic 35

您可以将随机查询参数附加到样式表URL(例如,通过javascript或服务器端代码).它不会更改正在加载的css文件,但会阻止缓存,因为浏览器会检测到不同的URL并且不会加载缓存的样式表.

<link rel="stylesheet" type="text/css" href="http://mysite/style.css?id=1234">
Run Code Online (Sandbox Code Playgroud)

  • 2022 年这仍然是相对的吗? (2认同)

Max*_*lov 5

您可以使用GetVersion方法创建类,该方法将返回您的应用程序版本(例如,内部版本号或内部版本日期)。

对于标记中的asp.net应用程序,您可以指定以下内容:

<script src="Scripts/some.js?version=<%= Common.GetVersion%>" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="~/styles/Style.css?version=<%= Common.GetVersion%>" />
Run Code Online (Sandbox Code Playgroud)

这将迫使浏览器重新加载文件,因为静态URL的一部分会在每个版本(或至少每个版本)中更改。

  • 非常好的主意,这样当您推送新版本时,您的缓存就会被“重置” (2认同)

fre*_*hie 5

如果您使用 Chrome 作为开发浏览器,有 2 个选项:

1) 当您按住重新加载页面按钮一秒钟时,将出现一个菜单,并提供硬页面重新加载的可能性。

2) 在 Inspector 设置中,您可以强制浏览器从不缓存文件。

在此输入图像描述

我认为通过在浏览器上禁用缓存来处理这个问题比在服务器配置中更容易、更快、更少麻烦。


Kri*_*ofe 5

没有捕获:将可变字符串放在 css 路径的末尾,如下所示:

<link rel="stylesheet" type="text/css" href="style.css?2016-12-3:10 13 30"/>
Run Code Online (Sandbox Code Playgroud)

版本更改时刷新:

<link rel="stylesheet" type="text/css" href="style.css?v=1.1.0"/>
Run Code Online (Sandbox Code Playgroud)


Ank*_*ain -4

  • 在chrome上按F12打开开发者工具
  • 然后右键单击重新加载按钮 - 单击(清除缓存并硬重新加载)

  • 实际上 ctrl + F5 强制浏览器清除我所知道的每个浏览器中的缓存(显然移动设备除外)。 (10认同)