【问题标题】:How to manually minify a JavascriptResult content before returning it如何在返回之前手动缩小 JavascriptResult 内容
【发布时间】:2015-05-20 01:43:29
【问题描述】:

我有一个控制器,它有一个特殊的方法可以根据一些请求参数返回一个 js 内容。 一切都很好,我只是使用一个返回 JavaScriptResult 的方法,我正在将一个视图(具有整个 js 内容)呈现给一个字符串并返回它。

现在我想在该解决方案上更进一步。我希望缩小 js 内容。我发现(在 NuGet 上)一个 CrockfordJsMinifier 类(Web Markup Minifier 包的一部分)似乎可以完成这项工作。

问题是:它不是一个完整的压缩器,它只是“吃掉”多余的空格、换行符等......它没有压缩变量或函数名称之类的东西。

因此我的问题是:是否可以在字符串上使用 MVC5 的“捆绑和缩小”解决方案中的缩小?如果是这样,我该怎么做?

这是我的方法的一个简短示例,只是为了说明:

    [AllowAnonymous]
    [HttpGet]
    public JavaScriptResult GetAnonymousJS(string JSName)
    {
        //"PartialToString" just renders the view on a string.
        string result = PartialToString(PartialView("PublicViewScripts/" + JSName));

        var minifier = new CrockfordJsMinifier();
        result = minifier.Minify(result, false).MinifiedContent;

        //This result is not "really" minified (is just roughly minified)
        return JavaScript(result);
    }

【问题讨论】:

    标签: asp.net-mvc minify


    【解决方案1】:

    Microsoft Ajax Minifier 怎么样。它可以根据需要压缩变量和函数名称。将 Ajaxmin.dll 添加到您的项目后,您可以调用 minifier:

    public JavaScriptResult GetAnonymousJS(string JSName)
    {
        //"PartialToString" just renders the view on a string.
        string result = PartialToString(PartialView("PublicViewScripts/" + JSName));
    
        var minifier = new Minifier();
        result = minifier.MinifyJavaScript(result);
    
        //This result is not "really" minified (is just roughly minified)
        return JavaScript(result);
    }
    

    http://ajaxmin.codeplex.com/wikipage?title=AjaxMin%20DLL

    【讨论】:

    猜你喜欢
    • 2014-01-29
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多