捆绑:这是一个简单的逻辑逻辑组,可以通过唯一名称引用并在HTTP请求者上加载。
缩小:这是从代码中删除不必要的空格,换行符和注释以减小其大小从而缩短加载时间的过程。
这是我的想法,
基本上我使用多个CCS,JS和Image文件来实现代码的模块化,可读性和可维护性。这里有多个JS和CSS文件需要来自浏览器的多个HTTP请求,这会降低我的网页的性能和加载时间,在某些情况下会导致网站整体性能下降。
我想将所有静态内容存储到AWS S3中,并通过CloudFront分发链接为其提供服务,并将这些CDN路径用于我的多个项目 with bundling&缩小
我一直在尝试将所有JS文件从CDN捆绑到一个捆绑包中(对于Bundling& Minication),如下面的代码,但这不起作用!
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"
));
任何帮助将不胜感激。
答案 0 :(得分:0)
我正在回答我自己的问题,因为这可能对某人有帮助。
我使用ASP.Net MVC Bundle Config生成了JS和CSS文件的压缩和缩小版本。我们不能在bundle config中将多个CDN组合在一起(仅一个脚本)。
我已经执行了以下步骤来生成压缩和缩小的JS& CSS文件,
一个。使用脚本包虚拟路径(“〜/ scripts / bundle”)在bundle config中包含必要的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”文件中。
℃。将“output.min.js”文件上传到S3存储桶并将此对象设置为public read-only属性,添加具有远期到期日期的expire标头,并将S3存储桶配置为CDN。
Key =“Cache-Control”,Value =“max-age = 1814400” - [3周] Key =“Expires”,Value =“Thu,20 Dec 2021 16:00:00 GMT” - [远期未来的到期日期]
d。现在通过将上面的代码(步骤a)更改为以下代码
,在bundle配置文件中配置CDNBundleTable.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请求脚本。脚本的调试版本将以调试模式在本地绘制。