3

嘗試使用CSS和JS文件具有相同virtualpath包名稱
1 - 這可能嗎? (嘗試:但失敗,不能爲腳本和樣式定義相同的虛擬路徑名)
2 - 它可以構建一起包含在混合包中的ScriptAndStyleBundle?是有可能包括在同一包(asp.net mvc5)腳本和樣式

僅僅因爲我想使用同名都爲css和js。

//in BundleConfig.cs 
bundles.Add(new ScriptBundle("~/bundles/doMenu") 
      .Include("~/Plugins/doMenu/files/js/doMenu.js") 
      ); 

     bundles.Add(new StyleBundle("~/bundles/doMenu") 
      .Include("~/Plugins/doMenu/files/css/doMenu.css") 
      ); 

//in _PartialLayoutMenu.cs 
@Scripts.Render("~/bundles/doMenu") 
@Styles.Render("~/bundles/doMenu") 


結果是:

<!--MENU LAYOUT--> 
<script src="/Plugins/doMenu/files/css/doMenu.css"></script> 

<link href="/Plugins/doMenu/files/css/doMenu.css" rel="stylesheet"/> 
<!--/MENU LAYOUT--> 

任何線索?或者我想要這樣一個無用的頭腦?(謝謝)

回答

3

我使用Cassette,它支持此功能。

配置:

bundles.Add<ScriptBundle>(BundleNames.Grid, 
          new[] {"~/Scripts/Grid.js"}, 
          bundle => bundle.AddReference("~/" + BundleNames.Base)); 

bundles.Add<StylesheetBundle>(BundleNames.Grid, 
           new[] {"~/Content/Grid.less"}); 

BundleNames是一個輔助類,我有一個常量字符串。在意見

參考束:

@{ 
    Bundles.Reference(BundleNames.Grid); 
} 

正如你所預料,這將包括所有的CSS和JS,以正確的順序。

我也想提一下,我已經開始使用Cassette之前ASP.Net有捆綁管理,我很滿意。我沒有發現任何有趣的功能ASP.Net有我失蹤。

+0

我在PartialLayout中渲染包,並調用它@ Html.Partial(「_ Menu」),因此它不會將css鏈接放入標題部分。我讀過有關casette解決的這個問題可以做到嗎?但這是另一個問題。 –

+0

@ N.Ramos - 是的,卡帶可以很容易地處理 - 它是專爲此設計的。它確保每個包僅包含一次,並且它們都按正確的順序排列。其實,如果沒有這個功能,我會非常失望,我使用它很多(例如,需要MathJax或DropzoneJS的局部視圖) – Kobi

+0

似乎我低估了「casette」的力量。感謝您的回答。這幫助我很多。 –

3

在這兩種樣式和腳本中,綁定名稱應該是唯一的。因爲它們是完全不同的類型,所以不能將它們混合成一個包,因爲那樣你就不知道如何在DOM中引用它:是否應該使用<script><style>標記。不幸的是,你所要求的是不可能的。

+0

在當前標準中尋找答案:是它不可能,但: 「casette」是偉大的。完美地解決了這個問題。 –