我正在使用ASP.NET Core。我为CSS和JS文件配置了CDN。
这是我在HTML中的TagHelper中的代码:
<script src="https://mycdn.azureedge.net/dist/web.bundle.js"
asp-append-version="true"
asp-fallback-src="~/dist/web.bundle.js"
asp-fallback-test="window.jQuery">
</script>
我的问题是重定向是在 http 处完成的,我需要 https 。
这是我浏览器中的错误:
混合内容:页面位于 'https://www.myweb.com'已加载 通过HTTPS,但请求一个不安全的样式表 'http://www.myweb.com/dist/web.bundle.js'。这个要求有 被封锁了;内容必须通过HTTPS提供。
另一件事是我的CSS和JS没有附加版本参数。
<script src="https://mycdn.azureedge.net/dist/web.bundle.js"></script>
谢谢!
答案 0 :(得分:1)
链接到CDN上的外部文件时,不要对方案进行编码。
而不是src="https://mycdn.azureedge.net/dist/web.bundle.js"
使用src="//mycdn.azureedge.net/dist/web.bundle.js"
。然后浏览器将使用当前的方案,https或http,具体取决于使用的方案。
修改:
既然我在家,我也可以回复你问题的第二部分:P
我怀疑,asp-append-version
标记帮助程序仅用于相对URL,这是有道理的。将它用于CDN毫无意义,因为你的应用程序必须每次都重新下载它的hashsum以将其添加到url(版本是根据文件内容计算的,每次文件更改,版本更改和浏览器被迫获取新版本)。
你可以在GitHub上看到here。
Uri uri;
if (Uri.TryCreate(resolvedPath, UriKind.Absolute, out uri) && !uri.IsFile)
{
// Don't append version if the path is absolute.
return path;
}