在生产环境中部署Django的静态文件。

今天遇到了在生产环境(Apache)中部署Django静态文件的问题。平常用./manage.py runserver习惯了。静态文件分布的到处都是,当我要把它们挪到Apache上时,我发现了一个问题:

static目录只能设一个

然后去看了看文档,果然Django的作者已经考虑到了这个问题。(既然是他们推荐的static文件分开放,自然就要给出解决方案才对啊。)

所以其实很容易:

在settings.py中加入

STATIC_ROOT = '/var/www/static'

其中/var/www/static是存放静态文件的目录,/var/www是Apache的Document root,同时在settings.py里配置STATIC_URL = '/static/'

注意要保证这个目录为空,因为接下来的操作会覆盖这个目录下的所有内容。

然后运行

python manage.py collectstatic

即可。