2012-11-03 25 views
5

我使用AppFog PaaS系统几天,我喜欢它,这可能是我测试过的最好的PaaS系统(我已经使用过以前的其他3种),但没有找到关于如何在前端(Apache https或nginx)中使用Web服务器提供静态内容的信息。我不确定正在使用哪个服务器。如何在AppFog中使用Apache的静态内容(WSGI Python应用程序)

我的应用程序是一个Python的WSGI CherryPy和完美的AppFog,但我不希望CherryPy服务静态内容,我认为Apache httpd或nginx是一个更好的选择。

+0

我认为我错了,AppFog使用nginx作为代理服务器,而不是阿帕奇的httpd的Python应用程序运行,无论如何,我仍然需要配置直接访问静态内容。 – Roberto

+0

如果我的答案有帮助,请将其设置为您的解决方案。谢谢! –

回答

0

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

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

图像,JavaScript和CSS将文件夹在您的文档根文件夹。相应地更新您的所有网址。

+1

感谢安德鲁,但据我所知AppFog不允许访问http.conf apache文件:-( – Roberto

+0

更新了nginx服务器的答案。 –

+0

嗨,安德鲁,因为我以前提到我没有访问服务器配置文件,我的应用程序在AppFog中运行,我只能更改我的应用程序目录中的文件。我已经在Appfog中打开了一张票,以确定此功能是否可行(在其他PaaS系统中,OpenShift可以这样做)。你的答案 – Roberto

2

随着瑞恩的支持,我终于能够加载静态文件!以下是具体步骤:

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

  2. 编辑settings.py文件:

    STATIC_ROOT = os.path.join(os.path.abspath则(os.path.dirname(文件)), '../static' )#可能会改变,取决于你的settings.py文件的位置!

    STATIC_URL = '/静态/'

  3. 加入urlpatterns变量urls.py文件以下行:

    URL(R '^静态/(P *)$?', 'django.views.static.serve',{'document_root':settings.STATIC_ROOT}),

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

    蟒蛇manage.py collectstatic

就是这样。推入AF :)

下行:需要collectstatic我们有一个新的静态文件每次...

+1

Hi @giga,原始问题是关于如何从AppFog前端(apache httpd或nginx)提供静态内容,而不是来自Python应用程序。实际上,我已经使用CherryPy从我的Python应用程序中提供了静态文件(我在原始文章中说过),但是Python程序(或者Java或其他)并不像成熟的Web服务器那样有效地提供静态文件。 – Roberto

+0

糟糕。我在第一时间通过Python提供静态服务时遇到了麻烦...:P – giga

+0

因此,在AppFog中,您不能修改ngix.conf吗? –

相关问题