2011-07-30 4 views
2

Google App Engineでアプリを作成しました。従来のブラウザではうまく機能しています。主なスクリプトはexample.pyと呼ばれています(私は例をハッキングしていて、それを変更したことはないので)。これはhtmlファイルを呼び出し、期待通りに変数を渡します。GAEのapp.yamlを設定してURLを通してスクリプトを選択できるようにします

今、モバイルデバイスに適した新しいバージョンを開発したいと考えています。これを行うために、私はexample_mobile.pyという新しいPythonスクリプトを書いた。異なるスタイルシートで異なるHTMLファイルを呼び出すことを除けば、example.pyと似ています。 Inelegant私は知っているが、私はapp.yamlファイルを通して実装するのが簡単だと思った。 .COMは、example.py問題はないの出力をプルアップ

application: (my application id string) 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url: /remote_api 
    script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py 
    login: admin 

- url: /stylesheets 
    static_dir: stylesheets 

- url: /javascript 
    static_dir: javascript 

- url: /images 
    static_dir: images 

- url: /mobile/.* 
    script: example_mobile.py 

- url: /.* 
    script: example.py 

WWW(自分のドメイン名):。

は、ここに私のapp.yamlファイルです。私はwww。(私のドメイン名).com/mobileがexample_mobile.pyからの出力を引き上げるが、うまくいかないことを期待していた。また、www.mobile。(私のドメイン名).comを試しましたが、運はありません。/mobile /の終わりに/.*を離れることを試みましたが、それはどちらも役に立たなかった。私はexample_mobile.pyとexample.pyを切り替えて、Pythonではないことを確認しました。期待どおりの結果が得られたので、app.yamlファイルの書式設定や使い方に間違いがあります。 GAEのドキュメントで同様の使用例が見つからないようですので、どんな助けでも大歓迎です。あなたはwww.(my domain name).com/mobile/

一つの簡単な提案を訪問するべきである/mobile/.*ルートをトリガするために

おかげで、

Dessie

答えて

1

は、単一example.pyがWSGIApplicationクラスにルーティング一部を残し/.*によって一致させることです。親指の

application = webapp.WSGIApplication(
            [('/mobile', example.MobileHandler), 
            ('/', example.MainHandler)], 
            debug=True) 

一つのルールはここにapp.yamlにあなたが別のアプリケーションまたは別のコンポーネントの異なる経路を持つべきであるということです。

mobileは異なるアプリケーション/コンポーネントか、異なるテーマとより軽い機能を備えた同じアプリケーションですか?

+1

あなたのアドバイスはうまくいった。私は/ mobile/routeがwww。(私のドメイン名).com/mobileによって活性化されていたはずだが、そうではなかったことに同意する。 WSGIApplicationクラスにハンドラを追加するというあなたの提案は完全に機能しました。 – Dessie

+0

@Dessieモバイルサイトの正規表現があなたが指定しなかった '/'の末尾を指定しているため、一致しませんでした。 –

関連する問題