阻止 ASP.NET 站点文件被缓存

Prevent ASP.NET site files from being cached

我们有 ASP.NET 表单网站。对于生产,我们使用捆绑,因此缓存脚本没有问题。

对于测试环境,我们希望所有脚本保持非捆绑状态,但我们也希望确保它们不会缓存在用户的浏览器中。

我们是否可以使用 web.config 设置来强制 IIS 发送没有缓存的所有文件 header?或者像这样的东西会阻止调试编译缓存?

在头部使用这个标签

<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />

您还可以添加 ? 符号并在 src 属性的末尾添加一个变量,这会强制浏览器重新加载源代码

<script type="text/javascript" src="JS/jquery-1.11.2.min.js?v=1.0"></script>

它也适用于样式表

在您的 Web.Debug.config 中,添加以下内容:

<configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="Cache-Control" value="no-cache, no-store" />
                <add name="Pragma" value="no-cache" />
                <add name="Expires" value="-1" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</configuration>

以下配置添加了必要的 HTTP headers,用于禁用客户端缓存。这将仅适用于调试版本,因为此配置仅存在于 Web.Debug.config 中。

可以找到 here 的 in-depth 解释 here