(抱歉我的英语不好)
我有一个奇怪的问题...我配置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/')
任何想法???
答案 0 :(得分:1)
对野外的猜测。您的静态文件由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。