Azure bootstrap fonts
本文关键字:fonts bootstrap Azure | 更新日期: 2023-09-27 18:35:09
无法解决这个问题,我将自定义引导 css&fonts 插入我的 Azure CDN 中,但在 Chrome 中我不断得到"跨源资源共享策略已阻止加载来自源'http://azxxxxxx.vo.msecnd.net'的字体:请求的资源上不存在'访问控制-允许-源'标头。因此,不允许访问源"http://localhost.domain:16300"。
我修改了我的引导 css
font-face {
font-family: 'Glyphicons Halflings';
src: url('//azxxxxxx.vo.msecnd.net/fonts/glyphicons-halflings-regular.eot');
src: url('//azxxxxxx.vo.msecnd.net/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('//azxxxxxx.vo.msecnd.net/fonts/glyphicons-halflings-regular.woff') format('woff'), url('//azxxxxxx.vo.msecnd.net/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('//azxxxxxx.vo.msecnd.net/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
我已经阅读了一些堆栈溢出帖子,将以下内容添加到我的网络配置中
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
<staticContent>
<mimeMap fileExtension=".woff" mimeType="application/octet-stream" />
</staticContent>
还有同样的问题,有什么想法吗?
假设你已将字体/CSS上传到Azure CDN前面的Azure Storage。
您需要在存储上启用 CORS,以允许您的网站跨域访问字体。
完整的步骤在Windows Azure Storage: Introducing CORS 中介绍
本文中的部分示例(需要获取适用于最新 Azure 客户端库的 NuGet 才能生成它):
private static void InitializeCors()
{
// CORS should be enabled once at service startup
// Given a BlobClient, download the current Service Properties
ServiceProperties blobServiceProperties = BlobClient.GetServiceProperties();
ConfigureCors(blobServiceProperties);
BlobClient.SetServiceProperties(blobServiceProperties);
}
private static void ConfigureCors(ServiceProperties serviceProperties)
{
serviceProperties.Cors = new CorsProperties();
serviceProperties.Cors.CorsRules.Add(new CorsRule()
{
AllowedHeaders = new List<string>() { "*" },
AllowedMethods = CorsHttpMethods.Get | CorsHttpMethods.Head,
AllowedOrigins = new List<string>() { "*" },
ExposedHeaders = new List<string>() { "*" },
MaxAgeInSeconds = 1800 // 30 minutes
});
}
看起来您缺少更多步骤(和自定义标头)。看看这个答案,它可能有你需要的东西 - Azure 网站上的请求由于 CORS 而失败
这是我不久前遇到的问题。这是一只熊。最后,对我有用的是为各种字体格式添加MIME类型。显然,Azure的服务器映像尚未正确包含它们。这是要尝试的 web.config 文件的更新。
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".svg" />
<remove fileExtension=".eot" />
<remove fileExtension=".woff" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
<mimeMap fileExtension=".woff" mimeType="application/x-woff" />
</staticContent>
</system.webServer>
</configuration>
请注意更新的 mimeType 值。祝你好运!
这样做。
IIS 版本 7.5+
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="access-control-allow-origin" value="*" />
<add name="access-control-allow-headers" value="content-type" />
</customHeaders>
</httpProtocol>
</system.webServer>
IIS 版本 <7.5
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="access-control-allow-origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
一种完全不同的方法是将 eot 文件编码为 base64 并将它们直接嵌入到 CSS 文件中。当我无法访问.woff
字体文件时,我最近不得不为 HTML Windows 应用商店应用程序执行此操作