浏览器CORS使用Apache虚拟主机和WordPress加载本地字体文件时出错

浏览器CORS使用Apache虚拟主机和WordPress加载本地字体文件时出错,apache,cors,virtualhost,Apache,Cors,Virtualhost,我以前在使用虚拟主机时从未遇到过CORS问题。通常情况下,我可以在静态站点上配置它们,但在让虚拟主机与WordPress协同工作时遇到了一些问题 /etc/hosts 127.0.0.1 localhost mytheme.local 255.255.255.255 broadcasthost ::1 localhost /etc/apache2/extra/httpd vhosts.conf <VirtualHost *:80> Doc

我以前在使用虚拟主机时从未遇到过CORS问题。通常情况下,我可以在静态站点上配置它们,但在让虚拟主机与WordPress协同工作时遇到了一些问题

/etc/hosts

127.0.0.1       localhost mytheme.local
255.255.255.255 broadcasthost
::1             localhost
/etc/apache2/extra/httpd vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/Users/timothyfisher/Sites/wordpress"
    ServerName mytheme.local

    <Directory "/Users/timothyfisher/Sites/wordpress/">
        Options +FollowSymLinks
        AllowOverride All
        Require all granted

        Header set Access-Control-Allow-Origin "*"
    </Directory>
</VirtualHost>

DocumentRoot“/Users/timothyfisher/Sites/wordpress”
ServerName mytheme.local
选项+FollowSymLinks
允许超越所有
要求所有授权
标题集访问控制允许原点“*”
我可以通过
http://mytheme.local
,但当浏览器尝试加载某些本地字体时,我收到以下控制台错误:

CORS策略已阻止从源“”访问“”处的字体:请求的资源上不存在“访问控制允许源”标头。因此,不允许访问源“”


这里发生了什么?

发生的正是您的错误消息所述

您的字体位于

您的网站来源是

除非您的字体也位于“myteme.local”,否则您违反了同源策略,因此将不会加载资源

这个问题以前已经被问过很多次了——请参考这篇文章,以获得一个被广泛接受的奇妙的语义答案: