Файлы шрифтов заблокированы политикой CORS - PullRequest
0 голосов
/ 02 июля 2018

Я хочу создать сервер, ускоренный провайдером CDN, который обслуживает статические файлы для других моих веб-сайтов. Я решил использовать https://www.funfun.org.cn,, тогда, например, https://www.funfun.org.cn/libs/font-awesome.min.css и https://www.funfun.org.cn/libs/octicons.min.css должны использоваться другими веб-сайтами.

Однако, когда я тестирую этот сервер на своем сайте в localhost, я вижу следующие ошибки:

enter image description here

Например,

Доступ к шрифту в 'https://www.funfun.org.cn/libs/octicons.woff' от origin 'https://localhost:3000' заблокирован политикой CORS: Нет Заголовок «Access-Control-Allow-Origin» присутствует в запрошенном ресурс. Происхождение 'https://localhost:3000' поэтому не допускается доступ.

Другие ошибки аналогичны и для https://www.funfun.org.cn/fonts/fontawesome-webfont.woff2?v=4.4.0 и https://www.funfun.org.cn/libs/octicons.ttf и т. Д.

На моем веб-сайте указанные выше файлы не вызываются напрямую, у меня есть только две следующие строки относительно шрифтов, которые должны называться .ttf и .woff2 и т. Д.

<link rel="stylesheet" href="https://www.funfun.org.cn/libs/font-awesome.min.css"> 
<link rel="stylesheet" href="https://www.funfun.org.cn/libs/octicons.min.css">

Итак, кто-нибудь знает, что я могу сделать, чтобы исправить эти ошибки?

PS: мой файл конфигурации nginx выглядит следующим образом, и все файлы находятся под /var/www/html/libs/ и /var/www/html/fonts/.

server {
    listen 443 ssl;

    ssl_certificate /etc/nginx/cert/1530490648293.pem;
    ssl_certificate_key /etc/nginx/cert/1530490648293.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_session_timeout 1d;
    ssl_stapling on;
    ssl_stapling_verify on;
    add_header Strict-Transport-Security max-age=15768000;

    root /var/www/html;

    server_name funfun.org.cn www.funfun.org.cn;

    location / {
        try_files $uri $uri/ =404;
    }
}

1 Ответ

0 голосов
/ 03 июля 2018

Попробуйте добавить это в вашу конфигурацию:

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


location / {
    try_files $uri $uri/ =404;
}

Также вам может потребоваться обновить файл nginx mine.types примерно так:

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