我使用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;
答案 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;
....
}