欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

CORS策略阻止了從Azure CDN請求的字體文件

榮姿康2年前11瀏覽0評論

所以我有一個Azure Web服務(wù)和一個Azure CDN。我的網(wǎng)絡(luò)服務(wù)運行在ASP.Net核心上

我請求我網(wǎng)站的index.html,它開始從CDN下載資源。除了字體文件之外,所有的資源都會被加載。

錯誤如下:

CORS策略已阻止從源“https://web app . azure websites . net”訪問“https://cdn . azure edge . net/68 . 0 . 3/styles/ui-grid . woff”處的字體:請求的資源上不存在“Access-Control-Allow-Origin”標頭。因此,不允許對源“https://web app . azure websites . net”進行訪問。

下面是其中一個請求的樣子:enter image description here

所以我理解的是:

從網(wǎng)絡(luò)服務(wù)器下載index.html index.html->下載。來自CDN的css 。css ->從CDN下載字體 被屏蔽??好像是瀏覽器阻止了請求,而不是CDN,對嗎?如果是為什么?就因為是字體文件請求? 如果使用Azure Blob存儲作為CDN端點的源,問題可能是存儲帳戶中的CORS配置。

我最初把我所有的域名放在一個單獨的行中,在允許的來源下,收到了和OP一樣的錯誤。 事實證明,您可以/必須將所有域(應(yīng)該具有相同的CORS配置)放在同一行上,用如下方式分隔:

Storage Account CORS configuration

在我的例子中,IIS塊。woff因為沒有設(shè)置mimeType,所以可以在web.config中設(shè)置它(如果需要,還可以選擇CORS ),如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="*" />
     </customHeaders>
    </httpProtocol>
   <staticContent>
        <remove fileExtension=".woff" /> <!-- In case IIS already has this mime type -->
        <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
        <remove fileExtension=".woff2" />
        <!-- In case IIS already has this mime type -->
        <mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2" />    
    </staticContent>
  </system.webServer>
</configuration>

沒有正確的配置,你不能從CDN中提取字體——這是一個不同的域,所以瀏覽器不能信任沒有正確標題的文件。

您只有一個選項-在CDN中正確設(shè)置標題。如果您可以訪問Apache或NGINX,您可以設(shè)置:

街頭流氓

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

NGINX

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

如果您無權(quán)訪問服務(wù)器設(shè)置,則不能使用CDN中的字體。

如果你使用Azure CDN的威瑞森高級SKU,你也可以通過CDN而不是原始服務(wù)器來設(shè)置CORS報頭。

https://learn.microsoft.com/en-us/azure/cdn/cdn-cors

我在嘗試從CDN后面的blob存儲帳戶提供字體文件時,甚至在本地運行時,都遇到了這個CORS錯誤。

字體文件的引用是來自同一Blob存儲帳戶提供的CSS文件的相對引用。

我的解決方案是使字體文件的引用成為blob存儲帳戶中(相同)url的絕對引用。這意味著Blob存儲帳戶可以正確應(yīng)用CORS策略(在Azure中Blob存儲帳戶上設(shè)置的)。