Сконфигурируйте app.yaml в GAE, чтобы разрешить выбор скриптов через URL - PullRequest
2 голосов
/ 31 июля 2011

Я создал приложение в Google App Engine, и оно работает довольно хорошо в обычном браузере.Основной скрипт называется example.py (потому что я взломал пример и никогда не менял его).Он вызывает HTML-файл и передает переменные, как вы ожидаете.

Теперь я хочу разработать новую версию, которая больше подходит для мобильных устройств.Для этого я написал новый скрипт на python под названием example_mobile.py.Он похож на 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

1 Ответ

1 голос
/ 31 июля 2011

Чтобы запустить маршрут /mobile/.*, вам нужно посетить www.(my domain name).com/mobile/

. Одно простое предложение - иметь один example.py, соответствующий /.*, оставляя часть маршрутизации в классе WSGIApplication.

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

Одно из практических правил заключается в том, что на app.yaml у вас должны быть разные маршруты для разных приложений или разных компонентов.

Это mobile другое приложение / компоненты или просто одно и то же приложение сдругая тема и некоторые более легкие особенности?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...