我創建了一個使用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"));
}
}
}
所以你正在使用MVC捆綁?你可以發佈:你的BundleConfig.cs以及你用來在頁面上包含CSS的代碼嗎? – br4d
我在Visual Studio中使用了所有的東西。我相信這在頁面上使用CSS:@Styles.Render(「〜/ Content/css」) @ Scripts.Render(「〜/ bundles/modernizr」),我將把bundle.cs放在原始問題上。 – dave317
是的,一切似乎都是按順序的。你的CSS可能會被緩存。如果您在瀏覽器中使用Control + R,它會重新加載沒有緩存的所有內容。如果這不起作用,請嘗試重新構建項目,因爲每次Web應用程序啓動時,捆綁實際上都會發生。 – br4d