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

时间:2018-08-22 04:26:01

标签: 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>
    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>

我能够通过http://mytheme.local连接到虚拟主机,但是当浏览器尝试加载某些本地字体时,出现以下控制台错误:

  

从原点“ http://localhost/~timothyfisher/wordpress/wp-content/themes/mytheme/fonts/fonticons.woff2”到“ http://mytheme.local”的字体访问已被CORS策略阻止:所请求的资源上没有“ Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://mytheme.local”。

这是怎么回事?

1 个答案:

答案 0 :(得分:0)

正在发生的事情恰好是您的错误消息指出的内容。

您的字体位于http://localhost

您的网站来源是http://mytheme.local

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

这个问题之前已经问过很多次了-请参阅此帖子以获取一个已被广泛接受的奇妙语义答案:How does Access-Control-Allow-Origin header work?