2016-02-01 2 views
3

У меня есть распределение CloudFront, который блокирует шрифт скачать в Chrome (настольный вариант) с ошибкой парование:Amazon CloudFront кросс-происхождения заголовков на шрифты

Font from origin ' https://....cloudfront.net ' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' https://example.com ' is therefore not allowed access.

Где я должен установить этот Access-Control-allow- Заголовок заголовка?

Я попытался добавить заголовок в разделе «Происхождение» в дистрибутиве can, но это не дает никакого эффекта.

enter image description here

EDIT # 1:

конфигурации Nginx о происхождении имеет директиву благородные предшественники:

location ~ \.(eot|ttf|woff|woff2)$ { 
    add_header Access-Control-Allow-Origin *; 
} 

, который на этом тесте curl -I https://example.com/skin/frontend/smartwave/default/megamenu/css/fonts/fontawesome-webfont.woff

Retuns ответ парование:

HTTP/1.1 200 OK 
Server: nginx 
Date: Tue, 02 Feb 2016 17:53:39 GMT 
Content-Type: application/font-woff 
Content-Length: 44432 
Last-Modified: Wed, 13 May 2015 15:58:11 GMT 
Connection: keep-alive 
ETag: "55537493-ad90" 
Pragma: public 
Cache-Control: max-age=31536000, public, must-revalidate, proxy-revalidate 
Accept-Ranges: bytes 

Из чего я вижу здесь этот заголовок Access-Control-Allow-Origin отсутствует.

Также я белый список заголовков на CloudFront, так что он не будет блокировать его:

enter image description here

+0

Определенно не в Origin пользовательских заголовков. Какой сервер является источником? В частности, это S3 или обычное происхождение? –

+0

@ Michael-sqlbot это VPS в центре обработки данных. Ничего не связано с Amazon – Mike

+0

Привет @mugur, вы нашли, как его настроить? Я (такая же проблема с приложением rails на heroku. –

ответ

2

Это было трудно проследить, как правила для заголовков были установлены в 2 разных местах, а не в одном.

Закрепление правильного заголовка для правильного типа файла сделал работу, но вы должны рассмотреть тот факт, что в некоторых местах пытается переписать правила Nginx не работает. Он рассмотрит только первое правило.

Исчерпывающее описание заголовков можно найти здесь https://stackoverflow.com/a/10636765/1168944

+1

Итак, что же это за правильное решение? сделайте точно –

+1

@Emre добавьте заголовок Access-Control-Allow-Origin в начале (ваш сервер). Полное описание можно найти здесь http://stackoverflow.com/a/10636765/1168944 – Mike