Шрифты заблокированы в веб-клиенте cors

Пока я работал на местном, все работало отлично, теперь я загружался на хостинг, а шрифты блокируются тем, о чем я никогда не слышал (CORS). Шрифты (и css, js и т.д.) Находятся в субдомене, потому что URL-адреса анализируются индексом (поэтому пути не работают в домене). Css/js работают нормально.

Это вывод в веб-консоли (firefox):

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/Oxygen-Regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Oxygen-Regular" style:normal weight:normal stretch:normal src index:0): bad URI or cross-site access not allowed source: /fonts/Oxygen-Regular.ttf styles.css:10:12
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/Montserrat-Regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Montserrat-Regular" style:normal weight:normal stretch:normal src index:0): bad URI or cross-site access not allowed source: /fonts/Montserrat-Regular.ttf styles.css:6:12
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/glyphicons-halflings-regular.woff2. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:1): bad URI or cross-site access not allowed source: /fonts/glyphicons-halflings-regular.woff2 bootstrap.css:267:12
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/glyphicons-halflings-regular.woff. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:2): bad URI or cross-site access not allowed source: /fonts/glyphicons-halflings-regular.woff bootstrap.css:267:12
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at /fonts/glyphicons-halflings-regular.ttf. (Reason: CORS header 'Access-Control-Allow-Origin' missing). <unknown>
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:3): bad URI or cross-site access not allowed source: /fonts/glyphicons-halflings-regular.ttf bootstrap.css:267:12

Я искал эту проблему, но я не могу найти эту специфическую проблему со шрифтами и точное сообщение об ошибке.

EDIT:

Исправление состоит в том, чтобы включить заголовок для домена/папки, обслуживающей файлы. Конфигурация может быть либо в виртуальном хост-блоке, либо в файле .htaccess(в папке, где находятся файлы). Я предпочитаю устанавливать его в блоке vhost:

<IfModule mod_headers.c>
    SetEnvIf Origin "https://(www|sub1|sub2|sub3).domain.com)$" ACAO=$0
    Header set Access-Control-Allow-Origin "%{ACAO}e" env=ACAO
    Header set Access-Control-Allow-Methods "GET"
</IfModule>

В этом примере Access-Control-Allow-Origin отправит только заголовок для белого домена и поддоменов. Я перенаправляю от domain.com до www.domain.com, поэтому этот пример не будет принимать домен без www.

Ответ 1

Ваш браузер жалуется на недостающий заголовок: Access-Control-Allow-Origin

Поскольку этот заголовок отсутствует, ваш браузер не знает, что требуемый доступ является законным. Посмотрите http://enable-cors.org и выберите конфигурацию, подходящую для вашего сервера.

Вам нужно настроить сервер, на котором хранятся шрифты!

Ответ 2

Revisa que ninguna Librería de bootstrap js este corpta, en caso, al pasarlas de subdominio al dominio main, cambio la codificación de algunas librerías de Bootstrap (js) me me trono;

Ответ 3

Интересный результат:

lighttpd позволяет добавлять пользовательский заголовок для всех запросов, добавляя это в данном контексте:

setenv.add-response-header = ( "Access-Control-Allow-Origin" => "*" )

Чтобы это сработало, вы должен включить mod_setenv. Но если вы не включите этот модуль, вы включаете свой модуль mod_status, вы никогда не увидите заголовки выходят из вашего заголовка ответа HTTP-отчета lighttpd