【问题标题】:CSS in App_Theme folder gets Cached in BrowserApp_Theme 文件夹中的 CSS 在浏览器中被缓存
【发布时间】:2011-05-29 20:55:41
【问题描述】:

App_Theme 文件夹中的样式表被缓存在浏览器中。应该采取什么方法?这样每当有新部署时,浏览器都应该采用最新的样式表,而不是浏览器中缓存的样式表。

这也发生在其他 css(不在主题文件夹中)上,因此使用链接中提到的自定义控件

http://blog.sallarp.com/asp-net-automatic-css-javascript-versioning/

如何对 Theme 文件夹中的 CSS 执行此操作?

编辑: 主题名称在 web.config 中提及,如下所述。所以它不仅仅是我使用链接中提到的方法解决的html链接标签。

 <pages styleSheetTheme="Default">
      <controls>

      </controls>
    </pages>

【问题讨论】:

    标签: asp.net css


    【解决方案1】:

    我也遇到过这个问题,我想出的解决方案是在你的 CSS 文件名中添加一个版本,不是很漂亮,但没有禁用 IIS 上的缓存,我想不出其他办法。

    重命名CSS文件说 mycss-V1.0.css,这将迫使你 用户的网络浏览器重新加载 CSS

    【讨论】:

      【解决方案2】:

      部署 Web 应用程序时,在主题路径中包含版本号。例如,App_Themes/Default/v1.2.0.4321/,其中v1.2.0.4321 是在部署时为版本 1.2.0.4321 添加的文件夹。这会保留主题名称(例如“默认”)和文件名,这使得源代码控制和路径引用更加容易。 ASP.NET 加载当前主题文件夹中的所有 CSS 文件,而不考虑子文件夹。这不仅解决了引用 CSS 文件的问题,还解决了从 CSS 文件中引用的图像(例如 background-image)。

      此外,App_Themes 的浏览器缓存持续时间可能会增加以提高性能,同时确保下次更新 Web 应用程序时,所有主题文件都会更新。

      将此添加到 Web.Config 的 &lt;configuration&gt; 部分,以使浏览器缓存 120 天。

      <location path="App_Themes">
          <system.webServer>
              <staticContent>
                  <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="120.00:00:00" />
              </staticContent>
          </system.webServer>
      </location>
      

      【讨论】:

        【解决方案3】:

        您可以为 css 文件名加上时间戳或使用 htaccess 来设置缓存限制,如此处所述http://css-tricks.com/can-we-prevent-css-caching/

        【讨论】:

          【解决方案4】:

          也可以将时间戳作为获取参数发送。

          EG:

          http://mysite.com/theme/dir/style.css?id=24033957203712

          其中 24033957203712 是时间戳。

          【讨论】:

          • 这适用于 app_theme 文件夹中的 css。主题名称仅在 web.config 中提及。
          • @dhinesh 我可能需要更多信息才能找到正确的答案
          • 这本质上不会在客户端缓存 CSS,因此会为每个请求强制为每个页面重新下载?这将增加服务器的负载。我会在实施之前考虑这一点。
          【解决方案5】:

          浏览器缓存基于响应头或浏览器设置中设置的过期时间。

          有时我们正在部署 CSS 并希望立即将它们推送给用户,但无法版本 asp 文件中引用的 css 文件(例如 style.css?v2)。

          在这些情况下,我们可以将特定 CSS 文件中更改/新的样式类单独添加到 aspx 文件的 Head 部分。它不会创建任何样式覆盖并修复问题。

          【讨论】:

            猜你喜欢
            • 2010-10-02
            • 2014-02-03
            • 2011-09-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-29
            • 1970-01-01
            • 2020-08-03
            相关资源
            最近更新 更多