用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'), )