1

我有一個DynamicFoldewrBundle將其他已訂購的捆綁包添加到DynamicFolderBundle?

bundles.Add(new DynamicFolderBundle("userScripts", "*.js", true, new JsMinify())); 

所以如果我運行:

http://optimization.localtest.me/files/templates/designs/HelloTreble/userScripts

...這將使捆綁和精縮在HelloTreble所有Javascript文件夾。

好的。

問:

但我怎麼能加定製訂購捆綁DynamicFolderBundle

我已經試過這樣:

bundles.Add(new DynamicFolderBundle("userScripts", "*.js",new JsMinify()) 
     .Include("~/Scripts/A.js").Include("~/Scripts/B.js")) 

哪些工作。

但輸出是:

  • 第一:A.JS
  • 二:B.js
  • 三:所有HelloTreble的js文件,縮小的]

當然在一個文件

但我真的以後我S:

  • 第一:[所有HelloTreble的js文件,縮小的]
  • 二:A.js
  • 三:B.js

在課程的一個文件)

+0

你可以嘗試實現自己定製的'IBundleOrderer'並在創建'DynamicFolderBundle'時進行設置:var userScripts = new DynamicFolderBundle(「userScripts」,「* .js」,new JsMinify()) .Include 「〜/腳本/ A.js」)的實例包括( 「〜/腳本/ B.js」); userScripts。Orderer = new MyBundlerOrderer(); bundles.Add(userScripts);' – nemesv

+0

@RoyiNamir我剛剛檢查了我的代碼,mvc v5.2.3,我的腳本順序與您正在查找的相同。 A.js,B.js,然後縮小腳本。 – Dandy

回答

3

您可以實現IBundleOrderer接口,如

public class MyBundleOrderer : IBundleOrderer 
{ 
    public IEnumerable<BundleFile> OrderFiles(BundleContext context, IEnumerable<BundleFile> files) 
    { 
     var list = new List<BundleFile>(files); 
     list.Reverse(); 
     return list; 
    } 
} 

,然後在userScripts捆綁附加給你的DynamicFolderBundle

var myDynamicBundle = new DynamicFolderBundle("userScripts", "*.js",true,new JsMinify()) 
.Include("~/Scripts/bootstrap.js") 
.Include("~/Scripts/respond.js"); 

myDynamicBundle.Orderer = new MyBundleOrderer(); 
bundles.Add(myDynamicBundle); 

腳本會爲了respond.js被渲染,然後bootstrap.js,那麼你的腳本。

相關問題