2012-11-03 32 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嗎? –

相關問題