nginx + @font-face + Firefox / IE9

Просто переданный мой сайт от общего хостинга до VPS Linode, и я также абсолютно плохо знаком с nginx, поэтому не будьте резки, если я пропустил что-то очевидный ^^

У меня есть свой сайт WordPress, работающий вполне прилично на nginx и MaxCDN, но мой @font-face шрифты (подаваемый из cdn.domain.com) прекратил работать в IE9 и FF (@font-face отказавший запрос перекрестного источника. Доступ ресурса ограничивается.)

Я гуглил в течение многих часов и пытался добавить все следующие к моим файлам конфигурации:

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


location ^/fonts/ { 
    add_header Access-Control-Allow-Origin *; 
}


location / { 
    if ($request_filename ~* ^.*?/([^/]*?)$) 
    { 
        set $filename $1; 
    } 

    if ($filename ~* ^.*?\.(eot)|(otf)|(ttf)|(woff)$){ 
        add_header 'Access-Control-Allow-Origin' '*'; 
    } 
}

Конечно, я перезапустил nginx после каждого изменения.

Заголовки просто не становятся отправленными вообще независимо от того, что я делаю.

У меня есть склонная Ubuntu по умолчанию - получают сборку nginx, который должен включать модуль заголовков по умолчанию... Как я проверяю, какие модули установлены, или что еще могло вызывать эту ошибку?

ОБНОВЛЕНИЕ:

Я попытался работать curl -I [location-of-the-font] и это действительно возвращается Access-Control-Allow-Origin: * но заголовок не видим в панели Network Chrome, и шрифты все еще не работают в FF & IE9 (CSS3117: @font-face неудавшийся запрос перекрестного источника. Доступ ресурса ограничивается.) - Какие-либо идеи, что могло вызывать это?

3
задан 17 November 2011 в 20:01
1 ответ

Единственное предложение, которое можно дать, это (1) убедиться, что вы очистили кэш внутри вашего браузера, и (2) убедиться, что add_header присутствует на соответствующем уровне.

Нет особого смысла в определении его везде. Если все ваши шрифты обслуживаются изнутри location /fonts, тогда это единственное место, где вы должны объявить соответствующую add_header, и вы также должны убедиться, что никакие другие директивы add_header не имеют других директив add_header, потому что это сбросит все предыдущие add_header направления на предыдущих уровнях.

0
ответ дан 3 December 2019 в 08:25

Теги

Похожие вопросы