捆绑时如何保存单个文件?

时间:2014-08-22 19:36:08

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-5 bundling-and-minification

可以用这种方式创建目录包......

bundles.Add(new ScriptBundle("~/bundles/mybundle").IncludeDirectory(
            "~/Scripts/app/", "*.js"));

@Scripts.Url("~/bundles/mybundle")的输出(没有令牌)就是这个..

/bundles/mybundle

指向整个目录内容捆绑和缩小的单个文件。

有没有办法让捆绑器创建一个捆绑包,使文件缩小但不捆绑到一个文件中?

/bundles/mybundle/myScript1.js
/bundles/mybundle/myScript2.js
/bundles/mybundle/myScript3.js
然后

Scripts.Url("~/bundles/mybundle")将引用虚拟路径的根目录

1 个答案:

答案 0 :(得分:-1)

你可以像@ gunr2171那样说并为每个文件创建一个包,但更清晰的解决方案是创建你自己的自定义捆绑转换,如下所示:

public class MinifyTransform : IBundleTransform
{
    public void Process(BundleContext context, BundleResponse response)
    {
        string bundleResponse = string.Empty;
        foreach (FileInfo file in response.Files)
        {
            //Minify file
        }
        response.Content = bundleResponse ;
    }
}

然后您可以像这样使用捆绑变换器:

Bundle myBundle = new Bundle("~/bundles/mybundle", new MinifyTransform());