发布网站不会更新我的CSS包

当我在发布模式下从Visual Studio运行我的代码,并检查捆绑的样式表时,我可以看到我对该包中的css文件的更新。 但是,当我将网站发布到服务器或本地计算机时,样式表中的更改尚未通过。 捆绑的样式表仍然是旧样式表。

我尝试过IIS重置,干净的构建/重建,从IIS文件夹中删除所有文件并重新发布。

如果这有任何不同,我使用的是LESS。

我的包配置:

bundles.Add(new StyleBundle("~/bundles/requiredStyles").Include( "~/Content/Style/Libs/bootstrap.min.css", "~/Content/Style/Libs/font-awesome.min.css", "~/Content/Style/Globals/application.css", "/Content/Style/Libs/muliDropdown.css", "~/Content/Style/Libs/smoothDivScroll.min.css", "~/Content/Style/Libs/jasny-bootstrap.min.css" )); 

我正在访问http://www.mywebsite.com/bundles/requiredStyles查看捆绑的CSS

所以我在application.css上做了一个更改,如果我在visual studio中播放(在发布模式下),这很好,但是当我发布到我的本地IIS时,我的更改不再存在。

如果您在与未分类文件相同的目录中具有缩小版本的css文件,则会发生这种情况。

例如,如果您有以下文件:


     〜/内容/ bootstrap.css
     〜/内容/ bootstrap.min.css

在您的目录中,并在捆绑包中注册“bootstrap.css”文件,优化器将首先尝试在发布期间使用“bootstrap.min.css”文件。 如果您只更新了“bootstrap.css”文件并且没有更新“bootstrap.min.css”文件,那么您将从“bootstrap.min.css”获取旧样式。 您可以通过删除“bootstrap.min.css”文件或更新它来解决此问题。

这在调试版本中不会发生,因为如果使用以下内容将编译设置为debug,则不会提取缩小的文件:

     

您还可以通过以下方式禁用优化来覆盖web.config设置:


     BundleTable.EnableOptimizations = false;

这将进入您的BundleConfig.cs文件。

在我的情况下bootstrap.min.css也存在于我删除它的内容文件夹和网站工作正常。

根据Filip Stanek提到“优化器将在发布期间首先尝试使用”bootstrap.min.css“文件”

即使我们在发布代码时没有在bundle config中添加它,它指向“bootstrap.min.css”

我最近遇到了捆绑的类似问题。 我在visual studio的webapi项目中使用angularJS。

我的web.config将debug设置为true。 我把它设置为假。 没变。

然后我尝试将我的编译条件设置为true(在global.asax.cs | app … start方法中):

 '#if DEBUG' 'BundleTable.EnableOptimizations = true;' '#else' 'BundleTable.EnableOptimizations = true;' '#endif' 

那也行不通。

最后,我最终将捆绑中引用/丢失的文件( .js )移动到堆栈中的另一个位置。 当我调试时,我从bundle中取消注释该文件,因为我将它直接包含在index.html中。 当我恢复它时,VS可能没有编译更改。

 ' bundles.Add(new ScriptBundle("~/SomeBundleName.js") .Include("~/Scripts/IWASMissingIntheBundle.js") .Include("~/Scripts/IWASNEVERMISSINGANDstillhere.js") .Include("~/Scripts/MOVEDIWASMissingHEREANDNOWImFound.js")' 

我的主张是编译器没有接受更改,无论清理和重建仍然没有。 移动文件后重新发布它似乎工作。

但我也清除了浏览器中的缓存,不仅仅是我在Chrome中使用的“Clear Cache”按钮,还来自调试器|网络面板。 一些步骤应该有所帮助。