【问题标题】:How to serve static content with Apache in AppFog (WSGI Python app)如何在 AppFog 中使用 Apache 提供静态内容(WSGI Python 应用程序)
【发布时间】:2012-11-03 10:31:06
【问题描述】:

我用了几天AppFog PaaS 系统,我很喜欢它,它可能是我测试过的最好的 PaaS 系统(我之前用过其他 3 个),但没有找到信息关于如何使用前端的 Web 服务器(Apache https 或 nginx)提供静态内容,我不确定正在使用什么服务器。

我的应用是一个带有 CherryPy 的 Python WSGI,在 AppFog 中完美运行,但我不希望 CherryPy 提供静态内容,我认为 Apache httpd 或 nginx 是更好的选择。

【问题讨论】:

  • 我认为我错了,AppFog使用nginx作为代理服务器而不是Apache httpd用于Python应用程序,无论如何,我仍然需要配置对静态内容的直接访问。
  • 如果我的回答有帮助,请将其设置为您的解决方案。谢谢!

标签: python apache wsgi appfog static-content


【解决方案1】:

在 Ryan 的支持下,我终于可以加载静态文件了!步骤如下:

  1. 在项目根目录中创建了一个“静态”目录 - 这里将收集所有静态文件,运行 collectstatic 命令。

  2. 编辑 settings.py 文件:

    STATIC_ROOT = os.path.join( os.path.abspath( os.path.dirname(file) ), '../static' ) # 可能会根据你的设置而改变。 py 文件是!

    STATIC_URL = '/static/'

  3. urls.py 文件中的urlpatterns 变量中添加以下行:

    url(r'^static/(?P.*)$', 'django.views.static.serve', { 'document_root': settings.STATIC_ROOT} ) ,

  4. 最后,在本地机器上运行 collectstatic 命令。这将从您正在使用的应用程序中复制所有静态文件:

    python manage.py collectstatic

就是这样。推入 AF :)

缺点:每次我们有一个新的静态文件时都需要运行collectstatic...

【讨论】:

  • 嗨@giga,最初的问题是关于如何从 AppFog 前端(apache httpd 或 nginx)而不是 Python 应用程序提供静态内容。实际上,我已经使用 CherryPy 从我的 Python 应用程序中提供静态文件(我在原来的帖子中说过),但是 Python 程序(或 Java 或其他)不如成熟的 Web 服务器提供静态文件的效率。
  • 糟糕。首先,我在使用 python 提供静态数据时遇到了麻烦……:P
  • 那么在 AppFog 中你不能修改 ngix.conf 吗?
【解决方案2】:

编辑您的 nginx.conf 文件。在服务器部分输入...

   # serve static files
      location ~ ^/(images|javascript|css)/  {
      root    /var/www/html/appname;
    }

images、javascript 和 css 将是您文档根文件夹中的文件夹。相应地更新您的所有网址。

【讨论】:

  • 感谢 Andrew,但据我所知 AppFog 不允许访问 http.conf apache 文件 :-(
  • 更新了 nginx 服务器的答案。
  • 嗨 Andrew,正如我之前提到的,我无法访问服务器配置文件,我的应用程序在 AppFog 中运行,我只能更改我的应用程序目录中的文件。我已经在 Appfog 中打开了一张票,以确定此功能是否可行(在其他 PaaS 系统中,因为 OpenShift 可以做到)。无论如何,谢谢你的回答。
  • @rsc1975 你的 AppFog 票是公开的吗?如果是这样,你能提供一个链接吗?我是 AppFog 的新手,但在类似的情况下,我需要能够编辑适用于我的 Node.js 应用程序的“nginx.conf”。
  • @rsc1975 你能解决它吗?我有完全相同的问题...请帮助。
猜你喜欢
  • 2016-05-02
  • 2010-11-30
  • 1970-01-01
  • 2015-05-24
  • 2018-09-28
  • 2014-10-30
  • 2020-03-06
  • 2018-09-17
  • 1970-01-01
相关资源
最近更新 更多