静态(管理)文件似乎没有得到正确的服务



Django在管理面板上提供静态文件时遇到问题。

调用http://vbox.me/admin/(其中vbox.me被别名为VM的IP)会导致一个没有样式表的空白页。

不过,调用http://vbox.me/static/admin/css/base.css(它是在打开http://vbox.me/admin/时应该加载的样式表的一部分)会产生正确的文件。

以下是一些重要信息:

  • 我最近开始尝试Django
  • 我目前的Django版本是1.8
  • 我正在运行nginx(在Windows 7上的VirtualBox中的Arch Linux上),它将每个非静态文件传递给uwsgi
  • uwsgi和nginx使用systemd作为服务运行
  • 独立运行Django开发服务器不会导致给定的奇怪行为

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(我以前没有使用过)。如果有效的话,我会告诉你的!

按照本教程重新安装everything之后,现在一切都很好。看起来我在配置上犯了一些错误。

我在这里也使用了Django 1.7,所以Django 1.8可能也是我问题的原因(尽管这真的不太可能)

最新更新