【发布时间】:2010-06-21 17:32:34
【问题描述】:
经过一番谷歌搜索后,我发现这些项目有助于提供静态文件:django-static 和 Nginx 和 django-staticfiles。
有没有人对这两种方法中的一种或两种方法都有经验,并且可以推荐其中一种或第三种方法?
【问题讨论】:
标签: django
经过一番谷歌搜索后,我发现这些项目有助于提供静态文件:django-static 和 Nginx 和 django-staticfiles。
有没有人对这两种方法中的一种或两种方法都有经验,并且可以推荐其中一种或第三种方法?
【问题讨论】:
标签: django
处理静态文件的常用方法实际上不是通过 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 处理,这通常非常缓慢。
存在静态文件服务器的原因主要是为了开发或非常简单的部署。
【讨论】:
MEDIA_ROOT 和 MEDIA_URL 假设没有与 Django 服务器共享资源,甚至没有服务器本身(以及为什么初始 settings.py 文件中的 cmets 显示完整的 URL 作为示例)。