nginx跨源资源问题

时间:2014-09-14 07:52:53

标签: nginx cors

我几乎读过有关CORS的stackoverflow上的所有帖子,无论我尝试什么都行不通。这是我的设置:

Ubuntu (digital ocean)  
nginx 
cdn: cdn77.com (not amazon) 
cloudflare
wordpress with wp fastest cache

每次完成新设置时,我都会清除cloudflare并重新启动nginx。

这是我尝试过的:

.htaccess(不起作用)

<IfModule mod_headers.c>
  <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css)$">
    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Headers "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With"
    Header set Access-Control-Allow-Methods "GET, PUT, POST"
  </FilesMatch>
</IfModule>

nginx(不起作用)

add_header Access-Control-Allow-Headers "X-Requested-With";
add_header Access-Control-Allow-Methods "GET, HEAD, OPTIONS";
add_header Access-Control-Allow-Origin "*";

我正在拉我的头发试图弄清楚为什么字体很棒不会在我的网站上显示其图标在不同的域上。

1 个答案:

答案 0 :(得分:0)

.htaccess文件只是apache,它永远不会用于Nginx。

使用nginx它应该可以工作,如果将这些标题添加到字体HTTP响应...但似乎你没有字体,你从其他网站获取字体。 CORS标题需要由本网站设置,而不是您的。检查字体上的这些标题是什么,并检查您的网站是否允许使用那里的字体(否则您将必须在您的网站上下载字体并根据字体扩展名在nginx位置添加标题。

我猜你混淆了CORS标题和 CSP标题(** C ** ontent ** S ** ecurity ** P ** olicy)。您可以在哪里为您的网站提供允许的资源列表。