![](/img/trans.png)
[英]Nginx failing to serve django static or media files on digital ocean
[英]Nginx - Django i serve perfect static files but not media files
(对不起,我的英语不好)
我遇到了一个特殊的问题...我完美地配置了Django和Nginx,我的网站显示完美地将所有静态文件都完美地加载到了。 但是..... Nginx没有提供媒体文件,我检查了我的配置,一切似乎都还可以。 但是我总是会收到404错误,并且路由与静态文件相同,但带有媒体字
这是静态文件路由http://project.com/static/css/custom.css
这是一个媒体文件http://project.com/media/stores/logos/solutions_logo_rdWRcqQ.jpg
这是nginx的配置
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提供。 (您可以通过删除/ 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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.