如何在生产中为Django 1.3提供静态文件

2 投票
3 回答
976 浏览
提问于 2025-04-16 22:32

我正在部署我的应用程序,想知道我漏掉了什么。

我做了以下几件事:

  1. 把我的 STATIC_ROOT 设置成了服务器上的一个空文件夹。
  2. 把 STATIC_URL 设置成了 '/static/'
  3. 把 'django.contrib.staticfiles' 加入到了 INSTALLED_APPS 中。

在开发的时候,我的静态文件放在应用的根目录下一个叫做 static 的文件夹里。

所以,我运行了 manage.py collectstatic,所有的文件都被复制到了我的 static_root。

但是,这个还是不行。我不知道我是不是漏掉了什么步骤。

任何帮助都非常感谢!

3 个回答

3

正如在Django的文档中所解释的,Django在开发阶段会自己处理静态文件,但当你把应用程序上线到生产环境时,就需要你自己让你的网页服务器(比如apache、lighttpd、nginx等)来处理这些静态文件。

Django的文档提供了关于如何在Apache上处理静态文件的说明,详细内容可以在这里找到。

3

Django在非调试模式下不应该直接提供静态文件,这是为了提高性能。你应该使用:

./manage.py collectstatic

然后配置你的网络服务器(比如apache或nginx),让它把这个文件夹里的内容提供到正确的网址上。

3

4. 把Apache指向你的静态文件夹。

撰写回答