【问题标题】:How to pre-generate js bundles outside web application?如何在 Web 应用程序外部预生成 js 包?
【发布时间】:2015-01-22 19:12:07
【问题描述】:

我正在开发一个 Web 应用程序,该应用程序使用 System.Web.Optimization 库将大量 js 脚本打包成包。

为了减少第一批用户的响应时间,我在Application_Start 中准备了所有捆绑包并强制将它们添加到缓存中。当然,这增加了Application_Start 的时间作为回报。

我设法将GenerateBundleResponse() 的结果保存到文件中,然后将这些文件的内容加载到Application_Start 的缓存中,但它需要运行应用程序两次:第一次“冷”启动准备脚本和将它们保存到文件中,而第二个可以使用准备好的脚本并快速启动。

public abstract class FileBasedBundle : Bundle
{
    public override BundleResponse GenerateBundleResponse(BundleContext context)
    {
        if (File.Exists(bundlePath))
        {
            var content = File.ReadAllText(bundlePath);
            var fileList = GenerateFileList(context);
            return new BundleResponse(content, fileList);
        }

        var response = base.GenerateBundleResponse(context);
        File.WriteAllText(bundlePath, response.Content);
        return response;
    }
}

问题是:我如何准备一些实用程序或脚本中的捆绑包以部署在远程机器上,以免启动应用程序两次? System.Web.Optimization 是否有任何替代方案可以在 Web 应用程序上下文之外运行? 谢谢!

【问题讨论】:

    标签: c# asp.net-mvc-4 bundle system.web.optimization


    【解决方案1】:

    可以试试这个捆绑器 - 编译和缩小 Less/Sass/Stylus/Css/JS/CoffeeScript/LiveScript 文件。

    https://github.com/ServiceStack/Bundler

    【讨论】:

    • 感谢您的回答,绝对值得一试。
    猜你喜欢
    • 2014-09-29
    • 2019-05-27
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    相关资源
    最近更新 更多