我使用 nginx,我包含 mime.types,当我尝试访问我的 css 文件时,我一直遇到错误。我尝试插入“include /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/;
}
}
}
Run Code Online (Sandbox Code Playgroud)
和我的 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">
Run Code Online (Sandbox Code Playgroud)
但我一直有这个错误:
未加载,因为其 MIME 类型“text/plain”不是“text/css”
通常放置include mime.types;在外部http { ... }块内部,而不是location { ... }块内部,以便它是系统范围的并被所有server { ... }块和所有位置继承。
你的href="../static/css/说法是相对的,所以从你提供的信息中,我们无法判断该URI是被location /static/block处理还是被location /block处理。
您没有为该块定义root(或) ,因此该语句的 false 条件可能始终会失败并返回 404。aliaslocation /if (!-f $request_filename)
您可能希望root /var/www/test/my-example在server { ... }块中进行设置并允许某些块继承它location。不鼓励使用aliaswhere aroot可以使用的地方 - 请参阅此文档。
如果您的 CSS 文件是通过 提供的,proxy_pass http://test_server;那么这是修复 MIME 类型的错误位置。