Django在管理面板上提供静态文件时遇到问题。
调用http://vbox.me/admin/
(其中vbox.me别名为VM的IP)会导致出现没有样式表的空白页。
虽然调用http://vbox.me/static/admin/css/base.css
,这是打开http://vbox.me/admin/
时应加载的样式表的一部分,但会显示正确的文件。
以下是一些基本信息:
Nginx配置文件:
# ...
http {
sendfile on;
upstream django {
server unix:/tmp/uwsgi.sock;
}
server {
# ...
location /static {
# static directory of the django project
alias /home/martin/projects/django_test/static;
}
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params;
}
}
}
uwsgi的INI文件:
[uwsgi]
chdir=/home/martin/projects/django_test
wsgi-file=django_test/wsgi.py
chmod-socket=666
socket=/tmp/uwsgi.sock
master=true
vacuum=true
Django项目中settings.py
的重要部分:
STATIC_ROOT = '/home/martin/projects/django_test/static/'
# using vbox.me to make sure the browser does not make up some strange url.
STATIC_URL = 'http://vbox.me/static/'
我差不多"离开黑暗",我只能猜测我在配置uwsgi或Django时犯了一些错误,因为nginx似乎完美地服务于静态文件(至少当明确要求他们......)
提前致谢!
编辑:我将对用于部署应用的所有工具进行全新设置,以确保我没有犯错。另外,这次我将使用virtualenv(我之前没有使用过)。我会告诉你这是否有效!
答案 0 :(得分:0)
在this tutorial之后全新安装所有之后,现在一切正常。看起来我在配置上犯了一些错误。
我也在这里使用过Django 1.7,所以Django 1.8也可能是导致我的问题的原因(尽管那确实不太可能)