Хотел поделиться своей ситуацией и решением в надежде, что это поможет следующему человеку.
Мои шрифты доставлялись через HTTPS через Amazon CloudFront , который был настроен для обслуживания статических ресурсов из нашего приложения, которое работает за Elastic Load Balancer .
Шрифты имели следующие заголовки:
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=100000
Cache-Control: no-cache="set-cookie"
Основываясь на других ответах и вещах, которые я мог найти в Интернете, я ожидал, что это сработает, поскольку он настраивал max-age
и имел правильную конфигурацию CORS
. Тем не менее, IE9 по-прежнему не будет отображать шрифты.
Проблема оказалась в заголовке Cache-Control: no-cache="set-cookie"
, что меня удивило, потому что там просто сказано не кэшировать заголовок Set-Cookie
(если я не ошибаюсь).
Мне потребовалось некоторое время, чтобы выяснить, откуда взялся этот заголовок. Этот заголовок был добавлен нашим ELB , потому что мы используем липкие сеансы с помощью файлов cookie, и я предполагаю, что балансировщик нагрузки настроен на использование этого заголовка Cache-Control
, когда он настроен таким образом.
Таким образом, отключение липких сессий удаляло заголовок и вызывало рендеринг шрифтов. Мы смогли отключить липкие сеансы для HTTP-запросов и оставить их включенными для HTTPS-запросов, что хорошо, потому что мы устанавливаем SSL для любых нестатических ресурсов, но с радостью предоставляем статические активы в CloudFront с или без SSL.
Надеюсь, кто-то еще может найти эту информацию полезной.