Решение проблем с кросс-происхождением совместного использования ресурсов (CORS)

Пт, 17/02/2017 - 12:37

После ввода в эксплуатацию нескольких ресурсов, имеющих https, стал замечать как изредка отваливаются иконки и прочее, потом вроде восстанавливаются и затем напрочь исчезают. Начал копать, выяснил что, хотя https стоит больше месяца, проблема докатилась только сейчас.
В консоли браузера что то вроде этого, приблизительно.

http://www.img.studioviza.ru/Shot9dlsd.png

В сети, нашел решение для ВП-шников, в корневой .htaccess пишем это:

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

И всё выравнивается. По отрицательным сторонам - всё работает, но чота этот ваш вп мне не нр.

0 Спасибо

Комментарии

Аватар пользователя sas@drupal.org
2 months 1 неделя назад sas@drupal.org #

На nginx помогает http://stackoverflow.com/questions/27955233/nginx-config-for-cors-add-header-directive-is-not-allowed

...
Firstly, let me say that after looking around the web, I found this answer popping up everywhere:

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

However, I have decided to answer this question with a separate answer as I only managed to get this particular solution working after putting in about ten more hours looking for a solution.

It seems that Nginx doesn't define any [correct] font MIME types by default. By following this tuorial I found I could add the following:

application/x-font-ttf ttc ttf;
application/x-font-otf otf;
application/font-woff woff;
application/font-woff2 woff2;
application/vnd.ms-fontobject eot;

0 Спасибо
Аватар пользователя Studio VIZA
2 months 1 неделя назад Studio VIZA #
sas@drupal.org написал:
На Nginx помогает

В Хроме всё идеально по коду в топике, а Мозилла игнорирует, всё плохо.
Этот код:
application/x-font-ttf ttc ttf;
application/x-font-otf otf;
application/font-woff woff;
application/font-woff2 woff2;
application/vnd.ms-fontobject eot; Куда ставить? Сорри нашел На мой etc/nginx/mime.typesфайл.

ПС. Всё везде заработало, после прописи в mime.types, перезарузки сервера и часовой паузы. Некий элемент волшебства раздражает.

0 Спасибо