2016-11-04 103 views
1

我有一个Wordpress网站通过Nginx/Ubuntu,数字海洋液滴安装​​。从静态域提供字体导致CORS问题 - WordPress的 - Nginx

目前,我正在优化网页的性能。 Pingdom FPT推荐通过无Cookie域提供静态文件。 我已经设置了它,现在它正在从静态子域提供文件。

然而,字体我面临的CORS问题:

使用Chrome的控制台:在 'http://static.ux-labs.com/themes/uxlabs/betheme/fonts/mfn-icons.woff?3416171' 从原点 'http://static.ux-labs.com' 已被阻止通过CORS政策

访问字体: 请求的资源上没有“Access-Control-Allow-Origin”标题。

原因'http://ux-labs.com'因此不允许访问。 (index):1从原始'http://static.ux-labs.com'访问来自'http://static.ux-labs.com/plugins/js_composer/assets/lib/bower/font-awesome/fonts/fontawesome-webfont.woff2?v=4.5.0'的字体已被CORS策略阻止:否请求的资源上存在'Access-Control-Allow-Origin'标头。

原因'http://ux-labs.com'因此不允许访问。

我尝试添加的主题的header.php

<?php /** @package WordPress @subpackage Default_Theme **/ 
    header("Access-Control-Allow-Origin: *"); 
?> 

但没有奏效。

我也试过在nginx的添加server.conf中

location ~* \.(eot|otf|svg|ttf|woff|woff2)$ { 
    add_header Access-Control-Allow-Origin *; 
    expires max; 
} 
+0

这方面的进展如何? – nupac

回答

2

正如您在 “标准” nginx的配置写它应该工作....

location ~* \.(eot|otf|svg|ttf|woff|woff2)$ { 
    add_header Access-Control-Allow-Origin *; 
    expires max; 
} 

有一点需要注意的是,你要确保你没有在正则表达式中使用这些文件扩展名的另一个位置块。我有2个块声明字体文件扩展名和第一个块加载,但不是我的CORS策略块。一旦我加载这些扩展只有1块一切工作正常。

如果没有看到完整的配置,很难判断它可能导致你失败​​的原因。