我在Google App Engine中创建了一个应用程序,它在传统浏览器中运行良好。主脚本叫做example.py(因为我一直在破解一个例子而且我从未改变它)。它调用一个html文件并按预期传入变量。
现在我想开发一个更适合移动设备的新版本。为此,我编写了一个名为example_mobile.py的新python脚本。它与example.py类似,只是它使用不同的样式表调用不同的html文件。我知道不雅,但我认为通过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
答案 0 :(得分:1)
要触发/mobile/.*
路线,您应该访问www.(my domain name).com/mobile/
一个简单的建议是让example.py
与/.*
匹配,将路由部分留给WSGIApplication类。
application = webapp.WSGIApplication(
[('/mobile', example.MobileHandler),
( '/', example.MainHandler)],
debug=True)
这里的一条经验法则是,在app.yaml
上,您应该为不同的应用程序或不同的组件设置不同的路由。
mobile
是不同的应用程序/组件,还是具有不同主题和更轻的功能的相同应用程序?