Cross-Origin @ font-face

时间:2016-08-05 23:54:39

标签: wordpress .htaccess fonts cross-domain

我在使用@ font-face安装字体时无法使用新的静态子域。

我一直在遵循设置IT Support Guides概述的无Cookie子域的步骤。

当我添加:

    define("WP_CONTENT_URL", "http://static.example.net");
    define("COOKIE_DOMAIN", "www.example.net");
    define("WP_PLUGIN_URL", "http://static.example.net/plugins");

wp.config 文件和

<FilesMatch "\.(cur|gif|ico|jpe?g|png|svgz?|webp)$">
        SetEnvIf Origin ":" IS_CORS
        Header set Access-Control-Allow-Origin "http://www.example.net" env=IS_CORS
</FilesMatch>

<FilesMatch "\.(eot|otf|ttc|ttf|woff)$">
    Header set Access-Control-Allow-Origin "http://www.example.net"
</FilesMatch>

.htaccess ,我在我的主题文件夹中安装的字体出现了跨源错误(字体未显示)。

我猜我没有用.htaccess文件做正确的事,但我不确定是什么。我在一些人中看到使用&#34; *&#34;而不是&#34; example.net&#34;,但这似乎没有帮助。

有什么想法吗?

修改

以下是我在Chrome中看到的错误: &#34;来自原产地的字体&#39; http://static.example.net'已被跨源资源共享策略阻止加载:“访问控制 - 允许 - 来源”&#39;标题有一个值&#39; http://www.example.net'这不等于提供的原产地。起源&#39; http://example.net'因此不允许访问。

1 个答案:

答案 0 :(得分:1)

修正了它!

看来shideshowbarker可能走在正确的轨道上。我将wp.config更改为:

<FilesMatch "\.(cur|gif|ico|jpe?g|png|svgz?|webp)$">
    SetEnvIf Origin ":" IS_CORS
    Header set Access-Control-Allow-Origin "http://example.net" env=IS_CORS
</FilesMatch>

<FilesMatch "\.(eot|otf|ttc|ttf|woff)$">
Header set Access-Control-Allow-Origin "http://example.net"
</FilesMatch>

今天就开始工作了。我以前试过这个,但因为我使用的是CDN,所以必须使用wp.config的缓存版本,同时拉动新的htaccess文件。由于它没有更新wp.config,即使我更改了文件,我仍然会收到相同的错误。

将wp.config中的更改保留几天可能足以让CDN更新缓存。或者我可以告诉CDN清空缓存。