姜戈和阿帕奇

Django and apache

我已经在 webfaction 上配置了我的 django 应用程序,目前它运行良好。我想知道如何在 apache 上提供我的静态和媒体文件。 Django 有一个开发服务器来提供这些文件。我最初在我的本地环境中设置了 apache,并添加了许多行脚本以通过 apache 提供静态和媒体文件。

然而,在 webfaction 上做同样的事情时,根据 webfaction 文档,我不需要做太多事情,这让我想到可能需要更多步骤才能通过 apache 提供这些文件。

因此,我想确认一下,我的静态文件和媒体文件是否从 apache 运行?恐怕这里也是这种情况,因为我还没有配置 apache 来提供这些文件,因为在开发环境中,django 提供静态文件,而媒体文件由 django 本身提供。

WebFaction 的典型 Django 部署涉及至少两个应用程序实例:

  • 适用于您 运行ning
  • 的 Django 版本的 Django 应用程序实例
  • 符号Link 到纯静态应用程序实例

静态应用程序的符号 link 希望您输入符号 link 来源的绝对路径。这应该指向 STATIC_ROOT.

指定的目录

给定项目结构:

/my-project/
    /my-project/
        settings.py
        ...

    /static_assets/  (used for local development. Not typically deployed.)
    /static/  (used for production)

这将转化为 WebFaction 中的目录结构,例如:

/home/
    /your-account-name/
        /webapps/
            /your-django-app-name/
                /apache2
                /bin
                /your-django-app-name  (synonymous with "my-project" above)
                    /static/  (this is what your 'static' symlink path)
                /lib
                    /pythonx.y  (modules go here. Django lives here)

创建 "Website" 实例时,您将在 / 上将 Django 应用程序实例指定为 运行,并在指定路径上指定符号 link 应用程序实例STATIC_URL,通常是 /static.

您应该 运行 和 WebFaction 的 DEBUG = False,这反过来会导致 django.contrib.staticfiles 提供位于STATICFILES_DIRS.

希望对您有所帮助。