0

捆绑:这是一个简单的逻辑文件组,可以通过唯一名称引用并在 HTTP 请求者上加载。

缩小:这是从代码中删除不必要的空格、换行符和注释以减小其大小从而缩短加载时间的过程。

这是我的想法,

基本上,我使用多个 CCS、JS 和 Image 文件来实现代码的模块化、可读性和可维护性。这里多个 JS 和 CSS 文件需要来自浏览器的多个 HTTP 请求,这会导致我的网页的性能和加载时间降低,在某些情况下会导致网站的整体性能下降。

我想将我的所有静态内容存储到 AWS S3 中,并通过 CloudFront 分发链接为它们提供服务,并将这些 CDN 路径用于我的多个带有捆绑和缩小的项目。

我一直在尝试将 CDN 中的所有 JS 文件捆绑到一个包中(用于捆绑和缩小),就像下面的代码一样,但这不起作用!

var myCDN = "http://cdn.myawsdomain.com/";
bundles.Add(new ScriptBundle("~/bundles/js", myCDN)
        .Include(
                 "~/MyS3BucketName/Scripts/jquery.cookie.js",
                 "~/MyS3BucketName/Scripts/bootstrap.min.js",
                 "~/MyS3BucketName/Scripts/wow.min.js"
               ));

也试过下面的代码,但这不起作用!

bundles.Add(new ScriptBundle("~/bundles/js")
       .Include(
       "http://cdn.myawsdomain.com/MyS3BucketName/Scripts/jquery.cookie.js",
       "http://cdn.myawsdomain.com/MyS3BucketName/Scripts/bootstrap.min.js",
       "http://cdn.myawsdomain.com/MyS3BucketName/Scripts/wow.min.js"
       ));

任何帮助将不胜感激。

4

1 回答 1

0

我正在回答我自己的问题,因为它可能对某人有帮助。

我使用 ASP.Net MVC Bundle Config 生成了 JS 和 CSS 文件的压缩和缩小版本。我们不能在捆绑配置中将多个 CDN 组合在一起(仅一个脚本)。

我已经执行了以下步骤来生成压缩和缩小的 JS & CSS 文件,

一个。使用脚本包虚拟路径(“~/scripts/bundle”)在包配置中包含必要的 JS 文件,并检查网页是否在浏览器中加载且没有错误。

BundleTable.EnableOptimizations = true;
bundles.UseCdn = true;

bundles.Add(new ScriptBundle("~/scripts/bundle")
       .Include("~/Yourscriptfile1.js")
       .Include("~/Yourscriptfile2.js")
       .Include("~/Yourscriptfile3.js")
        );

湾。要将所有这些 JS 文件压缩并缩小为一个文件,请从本地计算机浏览器向虚拟路径 ( http://localhost:254/scripts/bundle ) 发送 HTTP 请求,并将响应保存到“output.min.js”文件中。

C。将“output.min.js”文件上传到S3存储桶并设置该对象公共只读属性,添加带有远期到期日期的过期标头,并将S3存储桶配置为CDN。

Key=”Cache-Control”, Value=”max-age=1814400” - [3 周] Key=”Expires”, Value=”Thu, 2021 年 12 月 30 日 16:00:00 GMT” - [遥远的到期日期只要]

d。现在通过将上面的代码(步骤a)更改为下面的代码,在捆绑配置文件中配置您的 CDN,

BundleTable.EnableOptimizations = true;
bundles.UseCdn = true;

string CDN = "http://cdn.mydomain.io/Scripts/compress/output.min.js";
bundles.Add(new ScriptBundle("~/scripts/bundle", CDN)
        .Include("~/Yourscriptfile1.js")
        .Include("~/Yourscriptfile2.js")
        .Include("~/Yourscriptfile3.js")
        );

在上面的代码中,脚本将在发布模式下从 CDN 请求。脚本的调试版本将以调试模式在本地绘制。

于 2016-03-09T14:30:37.390 回答