如何解决如何在 .NET MVC (4.7.2) 应用程序的 ScriptBundle 中包含 SRI 哈希?
目前我的包使用的是公共库的本地副本。
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js","~/Scripts/moment.min.js","~/Scripts/bootstrap-datetimepicker.min.js","~/Scripts/respond.js"));
我想转换为使用 CDN,并希望通过包含哈希值来确保我遵守 SRI。我找到了很多关于在捆绑配置中使用 CDN 的文章,但没有关于如何在捆绑时包含 SRI 哈希和 crossorigin 标签。
请帮助我。
解决方法
试试这个:
public static void RegisterBundles(BundleCollection bundles)
{
BundleTable.EnableOptimizations = true;
string version = string.Format("{0}",DateTime.Now.ToString("yyyyMMddHHmmss"));
bundles.UseCdn = true;
var cdnUrl = "CDN url"+ "{0}?" + version;
bundles.Add(new ScriptBundle("~/bundles/bootstrap",string.Format(cdnUrl,"bundles/bootstrap")).Include(
"~/Scripts/bootstrap.js","~/Scripts/moment.min.js","~/Scripts/bootstrap-datetimepicker.min.js","~/Scripts/respond.js"));
}
并在 Global.asax.cs
内的 Application_BeginRequest
中添加此行以允许跨域
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin","CDN url");
,
试试下面的代码:
bundles.UseCdn = true; bundles.Add(new ScriptBundle("~/bundles/jquery","http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js").包含( "~/Scripts/jquery-{version}.js"));
并在 debug="false" 模式下运行您的应用程序或使用 BundleTable.EnableOptimizations = true;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。