当我在发布模式下从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时,我的更改不再存在。
答案 0 :(得分:40)
如果您的css文件的缩小版本与未分隔文件位于同一目录中,则会发生这种情况。
例如,如果您有以下文件:
~/Content/bootstrap.css ~/Content/bootstrap.min.css在您的目录中
,然后注册" bootstrap.css"在您的包中的文件,优化器将首先尝试使用" bootstrap.min.css"发布期间的文件。如果你只更新了" bootstrap.css"文件并没有更新" bootstrap.min.css"文件,您将获得" bootstrap.min.css"中的旧样式。您可以通过删除" bootstrap.min.css"来解决此问题。文件或更新它。
在调试版本中不会发生这种情况,因为如果使用以下内容将编译设置为debug,则不会提取缩小的文件:
<system.web>
<compilation debug="true" />
<!-- Lines removed for clarity. -->
</system.web>
您还可以通过以下方式禁用优化来覆盖web.config设置:
BundleTable.EnableOptimizations = false;
这将包含在BundleConfig.cs文件中。
答案 1 :(得分:1)
在我的情况下,bootstrap.min.css也存在于我删除的内容文件夹中,网站工作正常。
根据Filip Stanek的提及&#34;优化器将首先尝试使用&#34; bootstrap.min.css&#34;发布期间的文件&#34;
即使我们在发布代码时没有在bundle config中添加它,也指向&#34; bootstrap.min.css&#34;
答案 2 :(得分:0)
我最近遇到了捆绑的类似问题。我在visual studio的webapi项目中使用angularJS。
我的web.config已将调试设置为true。我把它设置为假。没有变化。
然后我尝试将我的编译条件设置为true(在global.asax.cs | app ... start方法中):
'#if DEBUG'
'BundleTable.EnableOptimizations = true;'
'#else'
'BundleTable.EnableOptimizations = true;'
'#endif'
这也不起作用。
最后,我最终将捆绑中引用/缺失的文件(<controllerName>.js
)移动到堆栈中的另一个位置。当我调试时,我从bundle中取消注释该文件,因为我将它直接包含在index.html中。当我恢复它时VS没有编译变化的可能性。
' bundles.Add(new ScriptBundle("~/SomeBundleName.js")
.Include("~/Scripts/IWASMissingIntheBundle.js")
.Include("~/Scripts/IWASNEVERMISSINGANDstillhere.js")
.Include("~/Scripts/MOVEDIWASMissingHEREANDNOWImFound.js")'
我的主张是编译器没有接收到更改,无论清理和重建仍然没有。移动文件后重新发布它似乎有效。
但我也在浏览器中清除了缓存,而不仅仅是来自&#34; Clear Cache&#34;我在Chrome中使用的按钮,也来自调试器|网络面板。一些步骤通过上述应该有所帮助。