我正在使用mvc4並探索如何捆綁CSS和JavaScript的作品。我有一個問題,我需要幫助。mvc捆綁,每個視圖一個
對於每一頁(視圖)我渲染我想只有一個js和css文件。這是該視圖所需的多個文件的頂點。從我所看到的,我可以創建捆綁文件,但我沒有看到爲每個視圖創建捆綁包的方法。
有人可以幫我解決這個問題,如果有可能實現我所概述的?
我正在使用mvc4並探索如何捆綁CSS和JavaScript的作品。我有一個問題,我需要幫助。mvc捆綁,每個視圖一個
對於每一頁(視圖)我渲染我想只有一個js和css文件。這是該視圖所需的多個文件的頂點。從我所看到的,我可以創建捆綁文件,但我沒有看到爲每個視圖創建捆綁包的方法。
有人可以幫我解決這個問題,如果有可能實現我所概述的?
對你的問題更具體。告訴我們你的嘗試。您必須手動創建每個捆綁包。如果你想要在特定的視圖上使用一個bundle,那麼創建這樣一個bundle,並在視圖中指定你將使用該bundle,就像你在視圖中指定的那樣,你將在那裏使用一個css文件。
你需要做的是去靜態> App_Start> BundleConfig.cs:
,然後創建一個包爲每個查看您有:
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/GlobalScripts")
.Include("~/Static/Scripts/jquery-1.10.2.js"
, "~/Static/Scripts/json2.js"
, "~/Static/Scripts/jquery-ui-1.10.4.js"
//, "~/Static/Scripts/jquery.layout-1.3.0.js"
//, "~/Static/Scripts/jquery.layout.state.js"
, "~/Static/Scripts/helper.mainlayout.js"));
}
}
只是不斷增加您的腳本路徑爲.Include()
,對於視圖中的每個javascript,併爲您擁有的每個視圖繼續執行bundles.add(new ScriptBundle(<bundle path>))
。
,你會如何利用CSS捆類似的步驟,但不是使用ScripBundle
您將使用StyleBundle
爲了減少代碼的重複嘗試爲每一個依賴於彼此並且做的JavaScript字符串列表對他們的工會:
List<string> jqGridScripts = new List<string>
{"~/Static/Scripts/jquery.jqGrid.src.js"
, "~/Static/Scripts/i18n/grid.locale-en.js"
, "~/Static/Scripts/helper.jqgrid.js"};
List<string> jqStopwatch = new List<string>
{ "~/Static/Scripts/jquery.stopwatch.js" };
bundles.Add(new ScriptBundle("~/bundles/viewName")
.Include(jqGridScripts
.Union(jqStopwatch).ToArray()));
只要記住,在它們出現的陣列上的順序,他們將出現在HTML或捆綁和精縮順序相同。
代碼在瀏覽:
@section scripts{
@Scripts.Render("~/bundles/viewName");
}
由此得到的代碼在HTML
<script src="/WDCSS/bundles/viewName?v=T3IlBuvfGTiz62pwDuiPogFX1jQoxVC2tmp3K6wffBQ1"></script>
我的意見的
我真的不知道我們是否應該這樣做或不。對我來說,我將獨立包中所有頁面中使用的腳本分開,以便將其緩存。然後爲視圖中使用的腳本創建另一個包。我想說的是我們應該在捆綁,縮小和緩存之間取得平衡。