2012-11-03 14 views
5

私はAppFog PaaSシステムを数日間使っています。私はそれを愛しています。これはおそらく私がテストした最良のPaaSシステムです他の3つ前のもの)、フロントエンド(Apache httpsまたはnginx)のWebサーバーで静的コンテンツを提供する方法に関する情報は見つかりませんでした。どのサーバーが使用されているのかよくわかりません。AppFogのApacheで静的コンテンツを提供する方法(WSGI Python app)

私のアプリはCherryPyを使ったPython WSGIであり、AppFogで完全に動作しますが、静的コンテンツを提供するCherryPyを気にしません。Apache httpdまたはnginxはそのためのより良いオプションだと思います。

+0

を実行する必要があり、とにかく、静的コンテンツへの直接アクセスを設定する必要があります。 – Roberto

+0

私の答えが役に立ったら、あなたの解決策としてそれを設定してください。ありがとう! –

答えて

0

nginx.confファイルを編集します。サーバーのセクションでは...

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

イメージ、javascriptおよびcssはドキュメントルートフォルダのフォルダになります。それに応じてすべてのあなたのURLを更新してください。

+1

ありがとうAndrew、しかし私が知っている限り、AppFogはhttp.conf apacheファイルへのアクセスを許可していません:-( – Roberto

+0

nginxサーバーの更新の回答 –

+0

こんにちはアンドリュー私は以前に私はサーバーの設定ファイル、私のアプリケーションAppFogで実行され、私は自分のアプリケーションディレクトリ内のファイルを変更することができます。私はこの機能が可能かどうかを確認するためにAppfogでチケットをオープンしました(他のPaaSシステムではOpenShiftが可能です)。あなたの答え。 – Roberto

2

Ryanのサポートにより、最終的に静的ファイルを読み込むことができます。ここで手順は次のとおりです。

  1. は、プロジェクトのルートに「静的」ディレクトリを作成しました - ここにすべての静的ファイルはcollectstaticコマンドを実行している収集されます。

  2. 編集settings.pyファイル:

    STATIC_ROOT = os.path.join(os.path.abspath(os.path.dirname(ファイル))、 '../static' )#あなたのsettings.pyファイルの場所によって変わるかもしれません!

    STATIC_URL = '/静的/'

  3. urls.pyファイルにurlpatterns変数に次の行を追加します。

    URL(R '?。^静的/(P *)$'、

  4. 最後に、ローカルマシンでcollectstaticコマンドを実行してください。これは、あなたが使用しているアプリケーションからすべての静的ファイルをコピーします。それだ

    のpython manage.py collectstatic

を。プッシュAFで:)

ダウンサイド:私は私が間違っているとAppFogは、Pythonアプリケーションのためのプロキシサーバーの代わりにApacheのhttpdのようnginxの使用と思い、我々は新しい静的なファイルを持っているcollectstaticたびに...

+1

こんにちは@giga、元の質問はAppFogのフロントエンド(apache httpdまたはnginx)からの静的なコンテンツの提供方法であり、Pythonアプリケーションからのものではありません。実のところ、CherryPyを使って私のPythonアプリケーションからスタティックファイルを提供しています(元の投稿ではそう言いました)が、Pythonプログラム(またはJavaなど)は、 – Roberto

+0

私は最初にPythonによって静的に提供することに問題がありました...:P – giga

+0

したがって、AppFogではngix.confを変更できませんでしたか? –

関連する問題