没有加载CSS,因为它的MIME类型

时间:2016-08-16 21:07:06

标签: css nginx

我使用nginx,我已经包含了mime.types,当我尝试访问我的css文件时,我一直有错误。我尝试插入"包括/etc/nginx/mime.types;"在"位置/"但是没有用。

这是我的nginx.conf:

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {
server_names_hash_bucket_size 64;
upstream test_server {
  server unix:/var/www/test/run/gunicorn.sock fail_timeout=10s;
}

server {
    listen   80;
    server_name ec2-#-#-#-#.sa-east-1.compute.amazonaws.com;

    client_max_body_size 4G;

    access_log /var/www/test/logs/nginx-access.log;
    error_log /var/www/test/logs/nginx-error.log warn;

    location /static/ {
          autoindex on;
        alias   /var/www/test/my-example/static/;
          include /etc/nginx/mime.types;
    }

    location /media/ {
        autoindex on;
        alias   /var/www/test/my-example/media/;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        if (!-f $request_filename) {
            proxy_pass http://test_server;
            break;
        }
    }

    #For favicon
    location  /favicon.ico {
        alias /var/www/test/test/static/img/favicon.ico;
    }
    #For robots.txt
    location  /robots.txt {
        alias /var/www/test/test/static/robots.txt ;
    }
    # Error pages
    error_page 500 502 503 504 /500.html;
    location = /500.html {
        root /var/www/test/my-example/static/;
    }
}

}

我的HTML主管:

<link rel="stylesheet"  type="text/css" href="../static/css/bootstrap.css">
    <link rel="stylesheet"  type="text/css" href="../static/css/combo.css">
    <link rel="stylesheet"  type="text/css" href="../static/css/font-awesome.min.css">
    <link rel='stylesheet' type="text/css" href="../static/css/raleway.css">

但我一直有这个错误:

  

未加载,因为其MIME类型&#34; text / plain&#34;,不是&#34; text / css&#34;

2 个答案:

答案 0 :(得分:2)

通常会将include mime.types;放在外部http { ... }块中,而不是放在location { ... }块内,以便它在系统范围内并由所有server { ... }继承。街区和所有地点。

您的href="../static/css/声明是相对的,因此根据您提供的信息,我们无法判断URI是由location /static/块还是location /块处理。

您没有为root块定义alias(或location /),因此if (!-f $request_filename)语句的错误条件可能始终会因404而失败。

您可能希望在root /var/www/test/my-example块中设置server { ... },并允许其被某些location块继承。不鼓励alias使用root的情况,请参阅this document

如果您的CSS文件是通过proxy_pass http://test_server;投放的,那么这是修复MIME类型的错误位置。

答案 1 :(得分:0)

另一种方法是修改/etc/nginx/mime.types并输入

    types {
    ....
    text/css     css plain;
    ....
   }