字体文件受到CORS政策的禁止

时间:2018-07-02 09:08:28

标签: nginx cors font-awesome cdn octicons

我想构建一个由CDN提供程序加速的服务器,该服务器为我的其他网站提供静态文件。我决定使用https://www.funfun.org.cn,例如https://www.funfun.org.cn/libs/font-awesome.min.csshttps://www.funfun.org.cn/libs/octicons.min.css应该可以被其他网站使用。

但是,当我在本地主机上通过网站测试此服务器时,看到以下错误:

enter image description here

例如

  

可以从“ https://www.funfun.org.cn/libs/octicons.woff”访问字体   原产地“ https://localhost:3000”已被CORS政策禁止:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。因此,不允许原点“ https://localhost:3000”   访问。

其他错误与https://www.funfun.org.cn/fonts/fontawesome-webfont.woff2?v=4.4.0https://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;
    }
}

2 个答案:

答案 0 :(得分:0)

尝试将其添加到您的配置中:

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;

答案 1 :(得分:0)

检查您是否具有足够的权限来读取文件。如果没有,请运行以下命令

var