首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Azure上托管Ubuntu14.0.4上Wordpress站点的字体?CORS问题

在Azure上托管Ubuntu14.0.4上Wordpress站点的字体?CORS问题
EN

Stack Overflow用户
提问于 2014-09-23 07:25:12
回答 1查看 973关注 0票数 1

我有一个Azure存储帐户,CDN设置为有5个子域指向存储帐户(cdn1.domain.com,cdn2.domain.com,- cdn5.domain.com)。

我使用W3全缓存插件来提高性能,特别是在Azure上托管静态文件。插件上传所有文件良好,网站可以访问图像,css,脚本等.没问题。但是,字体不加载。

获得以下错误:

来自原点的字体“http://cdn1.domain.com”已被跨源资源共享策略阻止加载:请求的资源上没有“访问控制-允许-原产地”标题。因此,“http://domain.com”源是不允许访问的。

wordpress站点托管在DigitalOcean上,在Ubuntu14.0.4上使用Apache。我在apache2.conf中添加了以下内容:

代码语言:javascript
复制
<FilesMatch ".(eot|ttf|otf|woff)">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>

那不起作用。经过一些研究之后,看起来Azure默认不允许CORS,所以我创建了一个C#应用程序来更改帐户上的CORS规则,如下所示:

代码语言:javascript
复制
var storageAccount =
    new CloudStorageAccount(
        new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("accountname", "accountkey"), true);
var blobClient = storageAccount.CreateCloudBlobClient();
var blobServiceProperties = new ServiceProperties
{
    HourMetrics = null,
    MinuteMetrics = null,
    Logging = null,
};
blobServiceProperties.Cors.CorsRules.Add(new CorsRule
{
    AllowedHeaders = new List<string> { "*" },
    AllowedMethods = CorsHttpMethods.Get,
    AllowedOrigins = new List<string> { "*" },
    ExposedHeaders = new List<string> { "*" },
    MaxAgeInSeconds = 3600 // 30 minutes 
});

blobClient.SetServiceProperties(blobServiceProperties);

从根本上说,这个仓库应该对所有的来源开放.但还是会犯同样的错误。所以我想也许是某种缓存。所以我把所有的文件重新上传到同一个容器,然后等待了大约6个小时。

错误仍然存在。我觉得为了从Azure加载字体,我已经尝试了所有应该做的事情。

我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2014-10-02 04:14:00

对于大多数CDN的CORS,默认情况下是为访问控制-允许-原产地头设置通配符。通配符案例的工作原理是CDN将缓存它获得的第一个请求的响应。对于客户需要允许特定来源的情况,通常需要在CDN上设置额外的配置来启用该配置。现在,从Azure管理门户可以获得的Azure CDN功能中,您需要为CDN端点启用查询字符串设置,然后对每个允许域的请求使用唯一的查询字符串。启用查询字符串设置将导致CDN缓存每个唯一查询字符串的单独对象。对于Azure CDN的大客户,有一个具有更复杂功能的补充门户,但它目前只对有限数量的客户可用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25989306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档