2017-09-14 12 views
0

私はAzure WebサービスとAzure CDNを持っています。私のWebサービスがASP.Netコアで動作していますCORSポリシーでブロックされているAzure CDNのフォントファイル

私はCDNからアセットのダウンロードを開始するWebサイトのindex.htmlをリクエストします。フォントファイルを除き、すべてのアセットがロードされます。ここで

は誤りです:

Access to Font at 'https://CDN.azureedge.net/68.0.3/styles/ui-grid.woff' from origin 'https://WebApp.azurewebsites.net' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://WebApp.azurewebsites.net' is therefore not allowed access.

は、ここでの要求の一つは次のようになります。 enter image description here

それでは、私が理解することです:Webサーバーから

  1. ダウンロードindex.htmlを
  2. index.html - > CDNからのダウンロード.css
  3. .css - > CDNからフォントをダウンロード
  4. ブロックされていますか?ブラウザがリクエストをブロックしているようですが、CDNではなく、正しいのでしょうか?もしそうなら、なぜですか?ちょうどそれがフォントファイルの要求だからですか?
+0

あなたは読みました:https://stackoverflow.com/questions/33197751/fonts-are-blocked-in-web-client-corsまたはhttps://stackoverflow.com/questions/25577981/を元のフォントからのブロックは、クロス・オリジン・リソース共有によるロードからブロックされていますか? –

+0

Amazon Simple Storage Serviceのようですが、私は.htaccessにアクセスできないと思っていますか、それともcdnサーバーファイルではないWebサーバーファイルですか? –

答えて

1

適切な設定がないと、フォントをCDNからプルすることはできません。別のドメインであるため、ブラウザは適切なヘッダーがないとこのファイルを信頼できません。

CDNには適切なヘッダーを1つだけ設定できます。あなたはApacheやnginxのへのアクセス権を持っている場合は、設定することができます。

アパッチ

<FilesMatch ".(eot|ttf|otf|woff)"> 
    Header set Access-Control-Allow-Origin "*" 
</FilesMatch> 

nginxの

if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){ 
    add_header Access-Control-Allow-Origin *; 
} 

を使用すると、サーバーの設定へのアクセスを持っていない場合は、CDNからフォントを使用することはできません。

関連する問題