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,那么你的脚本。

相关问题