使用Visual Studio 2013和LESS缩小和发布CSS和JavaScript

时间:2014-12-31 06:56:47

标签: visual-studio-2013 minify

当我发布我的MVC网络应用程序时,我可以看到发布的位置获取原始的js和css文件,当我运行它时它会缩小(我可以在视图源中看到它)

这就是我正在做的事情:

        BundleTable.EnableOptimizations = true;

        bundles.UseCdn = false;
        var cssTransformer = new StyleTransformer();
        var jsTransformer = new ScriptTransformer();
        var nullOrderer = new NullOrderer();

        var cssBundle = new StyleBundle("~/bundles/css");
        cssBundle.Include("~/Content/Site.less", "~/Content/bootstrap/bootstrap.less");
        cssBundle.Transforms.Add(cssTransformer);
        cssBundle.Transforms.Add(new CssMinify());
        cssBundle.Orderer = nullOrderer;
        bundles.Add(cssBundle);

        var sampleCssBundle = new StyleBundle("~/bundles/sampleCss");
        sampleCssBundle.Include("~/Content/sample.css");
        sampleCssBundle.Transforms.Add(cssTransformer);
        sampleCssBundle.Transforms.Add(new CssMinify());
        sampleCssBundle.Orderer = nullOrderer;
        bundles.Add(sampleCssBundle);

        var sampleJsBundle = new ScriptBundle("~/bundles/sampleJs");
        sampleJsBundle.Include("~/Scripts/sample.js");
        sampleJsBundle.Transforms.Add(jsTransformer);
        sampleJsBundle.Transforms.Add(new JsMinify());
        sampleJsBundle.Orderer = nullOrderer;
        bundles.Add(sampleJsBundle);
  1. 如果我将缩小版本的文件部署到发布的位置,我会获得更好的性能吗? (例如:myFile.min.js和myFile.min.css)

  2. 是否有一种在Visual Studio中生成文件的本机方式,因此我可以将其缩小发布? (我可以查看每个缩小的文件并将其保存为myFile.min,但我希望有一种自动方式来执行此操作)

  3. 提前致谢。

1 个答案:

答案 0 :(得分:1)

我总是很高兴看到有人调整他们的网站效果!

1)只要您引用捆绑包(而不是已发布的文件),发布缩小文件的影响可以忽略不计。捆绑系统仅读取文件一次,并将缩小和捆绑的版本缓存在内存中。生成的包使用页面中包含的哈希标识,并允许对包进行浏览器和代理缓存。当您发布的文件发生更改时,将更新该包,页面将使用新的包哈希。

This answer提供了有关缓存的其他信息。

如果您有兴趣自动化第一个请求"探索Application Initialization

2)Mads Kristensen的Web Essentials extension对CSS和JavaScript有了缩小支持。从Visual Studio 2013 Update 4开始,没有可以创建缩小文件的内置工具。