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 経由で提供する必要があります。

もう 1 つのことは、私の 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 を使用します。

編集

家に帰ったので、あなたの質問の 2 番目の部分に返信することもできます :P

お察しのとおり、asp-append-versionタグ ヘルパーは相対 URL のみを対象としており、これは理にかなっています。これを CDN に使用するのはあまり意味がありません。アプリケーションは、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;
}
于 2016-06-02T13:21:16.600 に答える