Загрузка шрифтов заблокирована политикой общего доступа к ресурсам: нет Access-Control-Allow-Origin.

16

мы столкнулись с этой ошибкой в ​​Google Chrome. Мы думали, что все настроено правильно. А может и нет?

http://skin.cdn.comПолитика шрифта из источника заблокирована для загрузки политикой общего доступа к ресурсам: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Происхождение http://domain2.comпоэтому не допускается.

И у нас есть следующее в htaccess (в корне домена).

<IfModule mod_headers.c>    
Header add Access-Control-Allow-Origin "http://skin.cdn.com" 
</IfModule>

Вопрос: я забыл другие настройки?

огромное спасибо

snh_nl
источник

Ответы:

17

Измените код файла htaccess в корневой директории вашего сайта (т.е. ваш файл public_html ".htaccess")

<FilesMatch "\.(ttf|otf|eot|woff|woff2)$">
    <IfModule mod_headers.c>
        Header set Access-Control-Allow-Origin "http://skin.cdn.com"
    </IfModule>
</FilesMatch>

Теперь вашему CDN будет разрешено загружать ваш ресурс, называя их вашим проходящим ресурсом (шрифтами).

ПРЕДУПРЕЖДЕНИЕ. Вам нужно ПРОЧИТЬ ВСЕ в CDN, чтобы файлы были обновлены через несколько минут.

Прашант Тапасе
источник
1
Ваш ответ сработал для меня безупречно, но могу ли я спросить, почему вы выбрали шаблон, а не ограничивать его конкретными источниками?
Amgraham
Этот метод все еще работает.
Рахул
0

У меня недостаточно репутации, чтобы комментировать ответ @Prashant Tapase, но Ваш корневой каталог не является Вашим Public_html. Это подкаталог вашего корневого каталога. & из ответов, которые я изучал Директива FileMatch должна быть внутри IfModule, как показано ниже

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

Пожалуйста, поправьте меня, если это не так.
Или вы можете указать конкретные URL / URI шрифтов, как он упомянул.

Кроме того, если это CDN, вы должны использовать версию https, а не http, если это возможно.

Райан Стоун
источник