2

我試圖爲我的應用程序捆綁腳本和樣式bootstrap。我的調試正在工作但是,當我發佈它時,不要加載腳本和樣式。捆綁MVC4.5發佈後不工作

我添加BundleConfig(BootstrapBundleConfig)

public static void RegisterBundles(BundleCollection bundles) 
    { 
     bundles.Add(new ScriptBundle("~/js").Include(
      "~/Scripts/jquery-{version}.js", 
      "~/Scripts/jquery-ui-1.10.4.custom.js", 
      "~/Scripts/jquery-migrate-{version}.js", 
      "~/Scripts/bootstrap.js", 
      "~/Scripts/gridmvc.js", 
      "~/Scripts/gridmvc.lang.fa.js", 
      "~/Scripts/jquery.validate.js", 
      "~/scripts/jquery.validate.unobtrusive.js", 
      "~/Scripts/jquery.validate.unobtrusive-custom-for-bootstrap.js", 
      "~/scripts/entitypicker.js", 
      "~/scripts/js-persian-cal.js", 
      "~/scripts/json2.js", 
      "~/scripts/bootbox.js", 
      "~/Scripts/jalali.js", 
      "~/Scripts/calendar.js", 
      "~/Scripts/calendar-setup.js", 
      "~/Scripts/lang/calendar-fa.js" 
      )); 
     bundles.Add(new StyleBundle("~/content/css").Include(
      "~/Content/bootstrap.css", 
      "~/Content/bootstrap-responsive.css", 
      "~/Content/bootstrap-mvc-validation.css", 
      "~/Content/themes/ui-lightness/jquery-ui.css", 
      "~/Content/js-persian-cal.css", 
      "~/Content/entitypicker.css", 
      "~/Content/gridmvc.css", 
      "~/Content/aqua/theme.css", 
      "~/Content/calendar-system.css" 
      )); 

    } 

在_layaout

<link href="@Styles.Url("~/content/css")" rel="stylesheet" /> 
@Scripts.Render("~/js") 

增加註冊這個全球

BootstrapSupport.BootstrapBundleConfig.RegisterBundles(System.Web.Optimization.BundleTable.Bundles); 

和設置樣式/腳本但是,當發佈它,打開查看頁面源文件

<link href="/Content/css?v=65vDyivXbF9ucPBBLls9CVnwUcCNass7hOMNUEXbN-I1" rel="stylesheet" /> 

當打開此文件在第一行出現錯誤。

/* Minification failed. Returning unminified contents. 
(962,1): run-time error CSS1019: Unexpected token, found '@charset' 
(962,10): run-time error CSS1019: Unexpected token, found '"UTF-8"' 
(962,17): run-time error CSS1019: Unexpected token, found ';' 
(994,1): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes' 

我在谷歌搜索和使用不同的方法,但錯誤沒有解決。

  1. 所有樣式添加到一個特殊的路徑(內容/他們/引導),並使用new StyleBundle("~/content/Them/Bootstrap")

  2. 使用BundleTable.EnableOptimizations = true;

等..

回答

0

你的CSS有一些'問題'時,縮小。這可能是因爲糟糕的CSS或不好的優化。

試着驗證你的CSS,看看你是否能夠發現罪魁禍首。

解決方法是使用BundleTable.EnableOptimizations = false,它不會縮小CSS。

爲了「調試」這個本地主機上,改變你的網絡配置和刪除屬性調試=真(這會讓你的CSS縮小您的開發機器上)

也對你的包不同的文件夾基地將使樣式表上的任何相對網址(如背景圖片)無法使用。

+0

我刪除了'BundleTable.EnableOptimizations'但不起作用。 – Niloo

+0

我從來沒有告訴過你刪除它。 –

+0

我設置了false/true,但不加載樣式/腳本。 – Niloo

1

這通常會發生如果您的CSS文件格式不正確,請將您的CSS代碼使用http://csslint.net/進行測試。

此外,如果你想調試這個不發表您可以將此行添加到您的BundleConfigRegisterBundles方法,你可以使用這個

@Styles.Render("~/content/css") 

而不是使用此行

<link href="@Styles.Url("~/content/css")" rel="stylesheet" /> 

BundleTable.EnableOptimizations = true; 
+0

謝謝,我測試的CSS和我糾正任何錯誤(不要更正警告)。並使用'@ Styles.Render(「〜/ content/css」)'。它在發佈中看到css文件時刪除錯誤,但不加載樣式文件。 :( – Niloo

+0

如果這是一個不正確的樣式,爲什麼它會在本地運行時工作?當我發佈時,我與文件權限有關嗎? – Zapnologica

0

這是罪魁禍首@charset "UTF-8"。搜索你的css文件,看看你能否找到它。這需要位於捆綁的css文件的頂部。即在束列表中第一個CSS文件的頂部。如果不是,它將無法縮小。

它通常在CSS文件中有Unicode字符時使用。這通常是因爲使用了像字體一樣的圖標字體。但是如果你不需要它在你的CSS文件中,那麼就把它拿出來。

+0

我在css文件中搜索,但沒有找到@charset UTF-8「 。 – Niloo

0

https://stackoverflow.com/a/19544226/2440976 - 這是一個DUP的問題,我相信 - 這很可能是一個簡單的答案(這爲我工作!)

(從答案)IIS配置>認證> RightClickOn匿名驗證>點擊編輯>檢查應用程序池身份