为什么nginx在错误的目录下提供静态文件?
我试图让nginx从根url提供一个静态文件,例如为什么nginx在错误的目录下提供静态文件?,nginx,Nginx,我试图让nginx从根url提供一个静态文件,例如http://localhost/favicon.ico。我的静态资产位于/home/myuser/myapp/static/中,我有一个根/home/myuser/myapp/static/指令 在我的浏览器中访问/favicon.ico不返回任何内容,但访问/static/favicon.ico时文件已正确送达 这意味着nginx将/home/myuser/myapp/视为根,而不是/home/myuser/myapp/static/,对吗?
http://localhost/favicon.ico
。我的静态资产位于/home/myuser/myapp/static/
中,我有一个根/home/myuser/myapp/static/我的服务器
部分中的code>指令
在我的浏览器中访问/favicon.ico
不返回任何内容,但访问/static/favicon.ico
时文件已正确送达
这意味着nginx将/home/myuser/myapp/
视为根,而不是/home/myuser/myapp/static/
,对吗?对/favicon.ico
的请求不应该从静态目录中发出吗
这是我的nginx.conf:
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024; # increase if you have lots of clients
accept_mutex off; # set to 'on' if nginx worker_processes > 1
use epoll;
}
http {
include mime.types;
access_log /var/log/nginx/access.log combined;
sendfile on;
upstream app_server {
server unix:/sockets/gunicorn.sock fail_timeout=0;
}
server {
listen 80 deferred;
client_max_body_size 4G;
server_name 10.204.2.169 perf-test.debesys.net;
keepalive_timeout 5;
root /home/myuser/myapp/static;
location / {
try_files $uri @app;
}
location @app{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_server;
}
}
}
这是/home/myuser/myapp
的结构:
├── constants.py
├── __init__.py
├── main.py
├── setup.sh
├── static
│ └── favicon.ico
├── tasks.py
└── wsgi.py
您应该将根移动到位置部分
server {
listen 80 deferred;
client_max_body_size 4G;
server_name 10.204.2.169 perf-test.debesys.net;
keepalive_timeout 5;
location / {
try_files $uri @app;
root /home/myuser/myapp/static;
}
将根放在位置块中从来都不是一个好主意。虽然它可以工作,但它是多余的。