向 DynamicFolderBundle 添加额外的订购包?

Posted

技术标签:

【中文标题】向 DynamicFolderBundle 添加额外的订购包?【英文标题】:Add additional ordered bundles to a DynamicFolderBundle? 【发布时间】:2015-12-05 02:54:12 【问题描述】:

我有一个DynamicFoldewrBundle

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

所以如果我跑:

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

...它将呈现所有捆绑并缩小在HelloTreble文件夹中的javascript文件。

好的。

问题:

但是我怎样才能将 custom ordered 包添加到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

(当然在一个文件中)

【问题讨论】:

可以尝试实现自己自定义的IBundleOrderer,并在创建DynamicFolderBundle时设置:var userScripts = new DynamicFolderBundle("userScripts", "*.js",new JsMinify()) .Include("~/Scripts/A.js").Include("~/Scripts/B.js"); userScripts.Orderer = new MyBundlerOrderer(); bundles.Add(userScripts); @RoyiNamir 我刚刚检查了我的代码 mvc v5.2.3,我的脚本顺序与您正在寻找的相同。 A.js,B.js,然后是缩小的脚本。 【参考方案1】:

你可以实现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.jsbootstrap.jsuserScripts 包中的脚本的顺序呈现。

【讨论】:

但是如果我想要我包含的文件按照我包含它们的顺序,那么动态文件夹包呢?逆向只会让我走上正轨

以上是关于向 DynamicFolderBundle 添加额外的订购包?的主要内容,如果未能解决你的问题,请参考以下文章

Django 管理员组权限列表中的额外表

越来越多受害者拒绝向黑客支付赎金

企业搭建帮助中心的额方式有哪些?

SQL累计总和每天刷新每个用户的新余额

磁盘配额,用户配额,组配额!整理不易多多点赞,收藏,加挂注,让我上热搜!

福利|绕行省内高速公路的货运车辆 按最短路径收费额的50%收取车辆通行费