uWSGI来单独运行一个Django应用,有一个static文件丢失的大坑。 本文介绍如何出坑。

(本文针对的Django版本在1.4以上,因为1.3以前有ADMIN_MEDIA_PREFIX这个坑,本文并不涉及。)

问题

一个Django应用,在./manage.py runserver情况下,正常运行。 而在uWSGI运行的情况下,则网页样式奇怪,静态文件找不到。

也就是说,调试的情况下没问题,生产环境找不到静态文件。

(假如在runserver的调试环境下也有问题,则通常是配置有误。 本文不讨论配置错误的情况。)

以下举例说明。

settings.py配置中,使用了django.contrib.staticfiles,并且做出以下配置。

BASE_DIR = os.path.dirname(os.path.realpath(__file__))

STATIC_ROOT = '/srv/django/static'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
静态文件设置

相关文章: