2017-02-07 12 views
1

Я только что перенес сайт (Wordpress) в новое место размещения.Как предотвратить блокировку Chrome/FF CDN-шрифтов из-за политики CORS?

Сайт работает отлично, за исключением того, что 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). Wordpress .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> 

Что такое разумный подход к отладке/разрешению этого вопроса?

+0

Как я понимаю, вы ставите .htaccess на стороне WordPress, правильно? Но он должен быть на стороне «сервера», где расположены шрифты. По словам CORS, владелец ресурсов (шрифтов) предоставляет доступ к клиентским серверам (сайты WordPress). –

+0

Спасибо @KAGGDesign, я новичок в этом и не очень хорошо объясняю. Насколько я понимаю, сайт Wordpress * - это сервер. Источником CDN является сайт Wordpress. Если, например, я размещал шрифты в ведре S3, относительно просто добавить политику доступа к этому ведру. Но с местом WP, являющимся источником, я не понимаю, как настроить вещи. –

+0

Также странно, что Safari загружает шрифты без проблем –

ответ

0

После долгих поисков и экспериментов выяснилось, что мне нужно включить модуль mod_headers на новом сервере.

sudo a2enmod headers 
sudo service apache2 reload 

Отправляя сюда, чтобы надеяться спасти кого-то еще от головной боли в будущем.