从静态域提供字体会导致CORS问题 - Wordpress - Nginx

时间:2016-11-04 11:02:50

标签: wordpress nginx cors

我在Nginx / Ubuntu,Digital Ocean Droplet上安装了Wordpress网站。

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

然而,对于字体我正面临CORS问题:

使用 Chrome控制台

  

CORS政策阻止了对来自“http://static.ux-labs.com/themes/uxlabs/betheme/fonts/mfn-icons.woff?3416171”的“http://static.ux-labs.com”字体的访问:   请求的资源上不存在“Access-Control-Allow-Origin”标头。

     因此,

Origin'http://ux-labs.com'不允许访问。   (索引):1来自原始“http://static.ux-labs.com/plugins/js_composer/assets/lib/bower/font-awesome/fonts/fontawesome-webfont.woff2?v=4.5.0”的“http://static.ux-labs.com”字体访问已被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;
}

1 个答案:

答案 0 :(得分:3)

它应该可以正常运作,因为您已将其写入&#34;标准&#34; nginx config ....

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

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

如果没有看到您的完整配置,很难说出它可能会让您失败。