这是对此的后续问题:ASP.Net MVC 5 - Deploy separate CDN site with bundled JavaScipt and CSS
我想从第二个ASP.Net网站提供我的JavaScript和CSS包,所以我做了以下工作。
CDN网站Web.config提取
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
CDN网站捆绑配置
public static class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
}
}
主要网站捆绑配置
public static class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/css", "http://[CDN website]/Content/css"));
//BundleTable.EnableOptimizations = true;
}
}
主要网站布局视图
<!DOCTYPE html>
<html>
<head>
@Styles.Render("~/Content/css")
</head>
<body>
@RenderBody()
</body>
</html>
结果
主网站制作的HTML不会为CSS呈现<link>
标记。但是,如果我启用了捆绑优化(请参阅主网站捆绑配置中的注释掉的代码),则会出现<link>
标记,但看起来像这样:
<link href="/Content/css?v=" rel="stylesheet">
在浏览器中导航到 http://[CDN网站] / Content / css 会加载相应的CSS。
在浏览器中导航到 http://[Main网站] / Content / css 会加载一个空白页面。
我做错了吗?我不想直接引用CDN网站的URL,因为我想要MVC捆绑器附带的版本控制。
答案 0 :(得分:0)
我最终在CDN网站上使用了以下解决方案。
https://stackoverflow.com/a/26402383/2663033
然后,主网站使用CDN网站的相应MVC路线作为样式&#34; href&#34;和脚本&#34; src&#34;,重定向到适当版本化的内容或脚本包。