Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 如何防止由于CORS策略而导致Chrome/FF阻止CDN字体?_Wordpress_.htaccess_Cors_Cross Domain - Fatal编程技术网

Wordpress 如何防止由于CORS策略而导致Chrome/FF阻止CDN字体?

Wordpress 如何防止由于CORS策略而导致Chrome/FF阻止CDN字体?,wordpress,.htaccess,cors,cross-domain,Wordpress,.htaccess,Cors,Cross Domain,我刚刚将一个(Wordpress)站点迁移到一个新的托管位置 除了Chrome和Firefox没有显示某些字体外,该网站工作得非常好 Access to Font at 'http://example.com/site/wp-content/themes/mytheme/fonts/modules.ttf' from origin 'http://example.com' has been blocked by CORS policy: No 'Access-Control-Allow-Or

我刚刚将一个(Wordpress)站点迁移到一个新的托管位置

除了Chrome和Firefox没有显示某些字体外,该网站工作得非常好

Access to Font at 'http://example.com/site/wp-content/themes/mytheme/fonts/modules.ttf' 
from origin 'http://example.com' has been blocked by CORS policy: 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://example.com' is therefore not allowed access.
我使用Cloudfront提供字体(我使用example.com作为源,而不是S3)。htaccess包含以下内容:

<IfModule mod_headers.c>
<FilesMatch "\.(eot|font.css|otf|ttc|ttf|woff)$">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
<IfModule mod_mime.c>

# Web fonts
AddType application/font-woff woff
AddType application/vnd.ms-fontobject eot

AddType application/x-font-ttf ttc ttf
AddType font/opentype otf

AddType     image/svg+xml svg svgz
AddEncoding gzip svgz

</IfModule>

标题集访问控制允许原点“*”
#网页字体
AddType应用程序/font-woff-woff
AddType应用程序/vnd.ms-fontobject eot
AddType应用程序/x-font-ttf ttc ttf
AddType字体/opentype otf
AddType image/svg+xml svg svgz
加法编码gzip svgz

什么是调试/解决此问题的合理方法

在谷歌搜索和实验之后,我发现我需要在新服务器上启用mod_headers模块

sudo a2enmod headers
sudo service apache2 reload

在这里发帖,希望将来能帮别人省去一些头疼的事

在谷歌搜索和实验之后,我发现我需要在新服务器上启用mod_headers模块

sudo a2enmod headers
sudo service apache2 reload

在这里发帖,希望将来能帮别人省去一些头疼的事

据我所知,你把.htaccess放在WordPress端,对吗?但它应该在“服务器”端,字体所在的位置。根据CORS的说法,资源(字体)所有者授予对客户端服务器(WordPress站点)的访问权。感谢@KAGGDesign,我对这一点还不熟悉,解释得不太清楚。据我所知,Wordpress网站就是服务器。CDN的来源是Wordpress站点。如果我将字体托管在一个S3存储桶中,那么将访问策略添加到该存储桶中相对简单。但由于WP站点是源站点,我不清楚如何配置。同样奇怪的是,Safari加载字体时没有问题。与其他浏览器不同,Safari(目前)没有对@font-FaceHanks@sideshowbarker实施CORS限制,我不认为Chrome对字体的CORS限制太严格。但也许这已经改变了?据我所知,你把.htaccess放在了WordPress端,对吗?但它应该在“服务器”端,字体所在的位置。根据CORS的说法,资源(字体)所有者授予对客户端服务器(WordPress站点)的访问权。感谢@KAGGDesign,我对这一点还不熟悉,解释得不太清楚。据我所知,Wordpress网站就是服务器。CDN的来源是Wordpress站点。如果我将字体托管在一个S3存储桶中,那么将访问策略添加到该存储桶中相对简单。但由于WP站点是源站点,我不清楚如何配置。同样奇怪的是,Safari加载字体时没有问题。与其他浏览器不同,Safari(目前)没有对@font-FaceHanks@sideshowbarker实施CORS限制,我不认为Chrome对字体的CORS限制太严格。但也许情况已经改变了?