如果您没有明确引用您的CSS,如何避免错误的CSS缓存?

时间:2015-07-17 18:52:53

标签: css asp.net webforms browser-cache

我们在网络表单项目中添加了一个主题。这有两个部分。

  1. 我们通过向项目添加文件来定义主题(有关此here的更多信息)。
  2.   
        
    • MyProject的      
          
      • App_Themes文件      
            
        • 的MyTheme      
              
          • MyStyleSheet.css
          •   
        •   
      •   
    •   
    1. 我们通过编辑web.config来应用主题(有关此here的更多信息)。
    2. <pages theme="MyTheme" styleSheetTheme="MyStyleSheet">

      现在我们所有的页面都具有相同的样式(非常棒)。但是,我们还有另一个问题。当我们更新样式表时,更改不会立即反映在浏览器中。这是因为大多数浏览器默认实现缓存。这是不可取的,所以我开始寻找解决方案。

      我找到了一个解决方案:How to prevent CSS caching on a web page?通过在链接末尾添加查询字符串,浏览器认为它是一个新文件,然后检索它。这对我们来说不起作用,因为我们没有像这样参考我们的样式表。我们在每个页面上都没有指向样式表的链接。我们将样式表粘贴在app_themes下,修改了我们的web.config,并让ASP.NET将它应用到我们的每个页面。

      我们希望在制作新版本时强制浏览器获取更新的css。实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您正在寻找的是捆绑。它在ASP.NET的MVC方面很流行,但也可以在Web表单中使用。当您进行更改时,Bundling将自动缩小并创建查询字符串,以便浏览器知道何时下载新文件。

遵循本指南应该有所帮助。 http://blogs.msdn.com/b/rickandy/archive/2012/08/14/adding-bundling-and-minification-to-web-forms.aspx