管理Django静态文件:使用django-static或django-staticfiles?

问题描述:

经过一番搜索后,我发现这些项目可以帮助提供静态文件:django-staticNginxdjango-staticfiles管理Django静态文件:使用django-static或django-staticfiles?

有没有人有过一种或者最好是两种方法的经验,并且可以推荐一种或另一种,或者是第三种?

通常处理静态文件的方式实际上并不是通过django发送它们,而是让web服务器(例如apache或ngingx)处理它们。我提供了一个mod_wsgi的小例子,基于官方的django文档,找到here

Alias /media/ /usr/local/wsgi/static/media/ 

<Directory /usr/local/wsgi/static> 
Order deny,allow 
Allow from all 
</Directory> 

WSGIScriptAlias//usr/local/wsgi/scripts/django.wsgi 

<Directory /usr/local/wsgi/scripts> 
Order allow,deny 
Allow from all 
</Directory> 

第一条语句确保/ media中的所有文件都将通过apache直接提供,而不是django。第二个声明是为了设置django网站本身。现在,使用这些媒体文件不会经过django处理,这往往是痛苦的缓慢。

静态文件服务器存在的原因主要是针对开发或非常简约的卷展栏。

+2

有关更多信息,请参阅[提供静态文件的Django文档页面](http://docs.djangoproject.com/en/dev/howto/static-files/)。我见过的一件事是推荐使用完全不同的Web服务器来处理静态文件,例如使用lighttpd。这就是为什么'MEDIA_ROOT'和'MEDIA_URL'假定Django服务器没有共享资源,甚至没有服务器本身(以及为什么最初'settings.py'文件中的注释显示完整的URL作为例子)。 – 2010-06-21 23:09:47

+0

好的。现在开始有意义。 – 2010-06-22 05:55:57

+0

后续问题:那么这两个静态项目又有什么意义呢? – 2010-06-22 06:05:30