2017-08-21 4 views
1

私たちのチームは、プロジェクトをGAEからAWSに移行しました。 1つのコンポーネントは、webapp2の上に構築されたWebアプリケーションです。これは、GAEとの統合が容易なフレームワークです。 webapp2フレームワークもAWSに保存しましたが、それを動作させるために若干の変更が加えられました。Python webapp2は静的コンテンツを配信します

Webアプリケーションはクラウドで正常に動作しますが、私はローカルの開発マシンでもそれを実行する方法を見つけようとしています。 GoogleがGAE環境を使用していたときは、Googleがクラウド環境を非常にうまくシミュレートするApp Engine Launcherを提供しているため、簡単な作業でした。

AWSでは、App Engine Launcherを使用してWebアプリケーションを開始するためにいくつかのハッキングを続けましたが、今は破棄したいと考えています。だから、私はpythonスクリプトを修正し、それが正常に開始されますが、私はどのように静的コンテンツを提供するのか分からない。 link rel = "stylesheet" type = "text/css" href = "{{statics_bucket}}/statics/css/shared.css"/のようなHTMLテンプレートには、静的ファイル(CSS、JS)が追加されます。 {{statics_bucket}}は、環境ごとの特定のAmazon S3バケットを指し示す環境変数です。もちろん、これはローカルホストでは機能しません。例えば、誰も静的コンテンツをhttp://localhost:8080/statics/css/shared.cssに提供していないからです。 Google App Engineランチャーにはこの機能があり、それは大変な仕事でした。

誰かが私の目標を達成する方法を指摘できますか?

答えて

1

私は以下のスクリプトと私の目標を達成するために管理:

import os.path 
import application 

from paste import httpserver 
from paste.cascade import Cascade 
from paste.urlparser import StaticURLParser 

def main(): 
    web_client = application.application 
    here = os.path.dirname(os.path.abspath(__file__)) 
    static_app = StaticURLParser(here) 

    app = Cascade([web_client, static_app]) 
    httpserver.serve(app, host='localhost', port='8080') 

if __name__ == '__main__': 
    main() 

スクリプトは、クラウド・アプリケーションとも両方同じサーバ内の同じポート上の静的ファイルを提供していますコンポーネントを開始します。

関連する問題