3

我創建了一個使用VS Express for web的MVC應用程序。它只會使用VS Express自帶的默認內置CSS文件。
例如:如果我修改bootstrap.css文件(更改jumbotron顏色)並從VS本地運行,則更改很明顯,但是當我部署Web時,這些更改都不明顯。我也注意到,當我修改web.config文件爲Debug = false時,當我從VS(和web部署)本地運行它時,我所做的CSS更改並不明顯。MVC應用程序的CSS更改不起作用

CSS仍在應用中,但是我所做的任何更改都未應用。該網站顯示舊的默認jumbotron顏色。如果我在web.config中更改debug = true,那麼jumbotron會顯示我更新的顏色。當我在網站上部署我的網站時,沒有應用CSS更改,它仍然使用默認的CSS文件,我甚至在服務器上檢查了bootstrap.css,並顯示更新的jumbotron顏色,但jumbotron仍然是網頁上的默認顏色??超級混亂。

我已經做了很多的閱讀,嘗試添加下列到我的web.config:

<remove name="BundleModule" /> 
<add name="BundleModule" type="System.Web.Optimization.BundleModule" /> 

但那不解決它。我嘗試從我的文件名刪除.css,這解決了當我使用debug = false從VS本地運行它時的問題,但是當我發佈網站時,該網站根本沒有顯示任何CSS樣式。這不是一個緩存問題。這與bundling和debug = false有關,但我不知道是什麼。我對web/MVC開發還很陌生。我已經使用NuGet更新了我的web.optimization和microsoft.aspnet等。

我對此非常難過,如果有人有建議並且有效,我會非常高興!有很多關於堆棧溢出的帖子,但沒有任何建議對我有效。

這是我bundle.config.cs:

using System.Web; 
using System.Web.Optimization; 

namespace HFHYYC 
{ 
     public class BundleConfig 
     { 

     public static void RegisterBundles(BundleCollection bundles) 
     { 
      bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-{version}.js")); 

      bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
        "~/Scripts/jquery.validate*")); 

      bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
        "~/Scripts/modernizr-*")); 

      bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
        "~/Scripts/bootstrap.js", 
        "~/Scripts/respond.js")); 

      bundles.Add(new StyleBundle("~/Content/css").Include(
        "~/Content/bootstrap.css", 
        "~/Content/site.css")); 
     } 
    } 
} 
+0

所以你正在使用MVC捆綁?你可以發佈:你的BundleConfig.cs以及你用來在頁面上包含CSS的代碼嗎? – br4d

+0

我在Visual Studio中使用了所有的東西。我相信這在頁面上使用CSS:@Styles.Render(「〜/ Content/css」) @ Scripts.Render(「〜/ bundles/modernizr」),我將把bundle.cs放在原始問題上。 – dave317

+0

是的,一切似乎都是按順序的。你的CSS可能會被緩存。如果您在瀏覽器中使用Control + R,它會重新加載沒有緩存的所有內容。如果這不起作用,請嘗試重新構建項目,因爲每次Web應用程序啓動時,捆綁實際上都會發生。 – br4d

回答

9

這可能是由於在本地/調試模式,當你部署bootstrap.min.css使用bootstrap.css捆綁框架。在確定將哪些文件添加到捆綁包時,該框架使用一組約定,其中之一是使用文件的.min版本(如果存在)用於發佈版本。這可能是什麼咬你。您在bootstrap.css中進行了更改,但未在bootstrap.min.css中進行更改。

嘗試刪除bootstrap.min.css並重新部署。這應該強制框架縮小並使用您修改的bootstrap.css文件。

+0

從Visual Studio項目文件或從我的Web服務器中刪除bootstrap.min.css? – dave317

+0

這工作偉大的彼得!這是否會以任何方式影響我的網站的性能?有沒有辦法強制VS使用更新後的bootstrap.css文件替換.min文件,當我對其進行更改時? – dave317

+0

或者只是嘗試在VS項目中重命名它。它也可能會將其從Web服務器中刪除或重命名,然後重新啓動應用程序池。 – Peter