0

我正在使用 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>

谢谢!!

4

1 回答 1

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 上看到

Uri uri;
if (Uri.TryCreate(resolvedPath, UriKind.Absolute, out uri) && !uri.IsFile)
{
    // Don't append version if the path is absolute.
    return path;
}
于 2016-06-02T13:21:16.600 回答