【问题标题】:Django and apacheDjango 和阿帕奇
【发布时间】:2015-01-02 18:27:10
【问题描述】:

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

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

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

【问题讨论】:

  • Webfaction 使用单独的仅静态服务器来提供您的文件。
  • 所以你的意思是只要我创建另一个静态和媒体应用程序,我就不需要做任何其他事情?我将不得不为此运行 collect static
  • 我实际上在 webfaction 上创建了 2 个静态应用程序,并将它们分配为静态和媒体目录和 url。我认为这意味着这两个文件夹将由不同的服务器提供服务。那是对的吗?我运行 collectstatic 将所有文件传输到静态文件夹。

标签: python django apache static-files webfaction


【解决方案1】:

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

  • 您正在运行的 Django 版本的 Django 应用实例
  • 指向纯静态应用实例的符号链接

指向纯静态应用程序的符号链接要求您输入符号链接来源的绝对路径。这应该指向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)

当您创建“网站”实例时,您将指定要在 / 上运行的 Django 应用程序实例,并将符号链接应用程序实例指定在 STATIC_URL 指定的路径上,通常是 /static

您应该在 WebFaction 中使用DEBUG = False 运行,这反过来会导致django.contrib.staticfiles提供位于STATICFILES_DIRS 中的任何文件。

希望对你有所帮助。

【讨论】:

  • 所以这意味着不需要对 apache 进行更改,并且仅静态应用程序实例在不同的服务器上运行?我是新手,所以只想确定:)。
  • 你的静态应用实例和 Django 实例在同一台服务器上。
  • 好的,那么我需要更改 apache conf 文件来告诉它提供这些文件吗?
  • 您的符号链接应用程序实例会这样做。您只需在您的网站上提供应用程序实例的工作路径,例如符号链接的 /static 和 Django 应用程序的 /
  • 但是,必须更改 Apache httpd.conf 以指向你的 wsgi.py 文件并在 pythonpath 上添加你想要的任何其他目录。
猜你喜欢
  • 2013-02-03
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-29
  • 1970-01-01
  • 2014-03-15
相关资源
最近更新 更多