Nginx-Django i提供完美的静态文件,但不提供媒体文件
对不起,我英语不好 我有一个特别的问题。。。我将Django和Nginx配置为完美,我的站点显示完美所有静态文件都加载到完美。但是Nginx没有提供媒体文件,我检查了配置,一切似乎都正常。但我总是会遇到404错误,路由与静态文件相同,但使用媒体字 这是一个静态文件路由 这是一个媒体文件 这是nginx配置Nginx-Django i提供完美的静态文件,但不提供媒体文件,django,nginx,media,Django,Nginx,Media,对不起,我英语不好 我有一个特别的问题。。。我将Django和Nginx配置为完美,我的站点显示完美所有静态文件都加载到完美。但是Nginx没有提供媒体文件,我检查了配置,一切似乎都正常。但我总是会遇到404错误,路由与静态文件相同,但使用媒体字 这是一个静态文件路由 这是一个媒体文件 这是nginx配置 server { listen 80; server_name project.com; location = /favicon.ico { access_log
server {
listen 80;
server_name project.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/username;
}
location /media/ {
root /home/username;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/username/project.sock;
}
}
这是django设置
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/'),
)
STATIC_ROOT=os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'static/')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'media/')
有什么想法吗?一个野外的猜测。您的静态文件直接由django提供,而不是由nginx提供。您可以通过删除location/static{…}部分并重新启动nginx来测试这一点 然后,要解决您的问题,请尝试以下方法:
server {
listen 80;
server_name project.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
alias /home/username;
}
location /media/ {
alias /home/username;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/username/project.sock;
}
}
此外,不要忘记在之后重新启动nginx