向 DynamicFolderBundle 添加额外的有序包?

Add additional ordered bundles to a DynamicFolderBundle?

我有一个 DynamicFoldewrBundle :

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

所以如果我 运行 :

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

...它将呈现所有 Javascript 文件并压缩到 HelloTreble 文件夹中。

好的。

问题:

但是如何将 自定义订购的 捆绑包添加到 DynamicFolderBundle

我已经试过了:

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

哪个有效

但输出是:

(当然是一个文件)

但我真正想要的是:

(当然是一个文件)

你可以像

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

然后将此附加到您的 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,然后是 userScripts 捆绑包中的脚本。