2011-07-30 40 views
2

我在Google App Engine中創建了一個應用程序,並且它在傳統瀏覽器中運行得非常好。主腳本被稱爲example.py(因爲我一直在黑客的例子,我從來沒有改變它)。它會調用一個html文件並按照您的預期傳遞變量。在GAE中配置app.yaml以允許通過URL選擇腳本

現在我想開發一個更適合移動設備的新版本。爲此,我編寫了一個名爲example_mobile.py的新Python腳本。它與example.py類似,不同的是它使用不同的樣式表調用不同的html文件。 Inelegant我知道,但我認爲這將很容易通過app.yaml文件實現。

這裏是我的app.yaml文件:

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(我的域名).COM拉起從example.py沒有問題的輸出。我希望www。(我的域名).com/mobile能夠從example_mobile.py中提取輸出,但它不起作用。也嘗試www.mobile。(我的域名).com,但沒有運氣。嘗試在/ mobile的結尾處關閉/.*,但這也沒有幫助。我切換example_mobile.py和example.py來檢查它是不是python,我得到了預期的結果,所以肯定有什麼問題,我如何格式化和使用app.yaml文件。似乎無法在GAE文檔中找到類似的用例,所以任何幫助都將非常感激。

感謝,

Dessie

回答

1

要觸發你應該訪問www.(my domain name).com/mobile/

一個簡單的建議是有一個單一的example.py通過/.*離開路由部分的WSGIApplication會類相匹配的/mobile/.*路線。拇指這裏的

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

一個規則是,在app.yaml你應該有不同的應用或不同的組件不同的路線。

mobile一個不同的應用程序/組件或只是相同的應用程序與不同的主題和一些較輕的功能?

+1

你的建議很好。我同意/ mobile/route應該已經被www。(我的域名).com/mobile激活,但事實並非如此。然而,向WSGIApplication類添加處理程序的建議儘管工作良好。 – Dessie

+0

@Dessie它不匹配,因爲你的移動網站的正則表達式指定了一個你沒有提供的尾部'/'。 –

相關問題