1

我有一个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"))

哪个有效

但输出是:

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

当然在一个文件中

但我真正追求的是:

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

当然在一个文件中

4

1 回答 1

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; 
    } 
}

然后将其附加到您的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

于 2015-09-10T10:58:42.157 回答