如何在 Google Appengine 中处理 Polymer 路由
How to handle Polymer routing in Google Appengine
我正尝试在 Google App Engine 上 运行 这个 Polymer 应用程序 (https://divshot.com/blog/web-components/building-a-qa-system-with-polymer-and-firebase/)。通过设置路由,我能够让第一页正常工作
webapp2.Route(r'/polymer', handler=project_handler.PolymerHandler, name='polymer'),
但是当 Github oAuth 成功 returns 登录用户返回回调 URL 时,问题输入屏幕 (list.html) 不会出现。 (仅供参考。当我 运行 在 GAE 之外执行完全相同的项目时,它工作得很好。所以我认为问题出在我的 GAE 路由设置上。)
<core-header-panel>
<div class="core-header">
<core-toolbar>
<div flex>Firebase Q&A</div>
<paper-menu-button halign="right">
<paper-icon-button icon="social:person"></paper-icon-button>
<paper-dropdown class="dropdown" transition="">
<core-menu class="menu">
<paper-item on-click="{{login}}" hidden?="{{!statusKnown || user}}">Login</paper-item>
<paper-item on-click="{{logout}}" hidden?="{{!statusKnown || !user}}">Logout</paper-item>
</core-menu>
</paper-dropdown>
</paper-menu-button>
<template if="{{user}}">{{user.github.username}}</template>
</core-toolbar>
</div>
<div class="content">
<app-router> <!-- This handles routing for Polymer app -->
<app-route path="/" import="/app/component/questions/list.html" element="qa-list"></app-route>
<app-route path="/app/component/questions/:id" import="/app/component/questions/view.html" element="qa-view"></app-route>
</app-router>
</div>
</core-header-panel>
显然这个应用程序路由器不工作。
你能给我指明正确的方向吗?谢谢。
项目结构
项目根目录
\应用\
\app\index.html
\app\component
\app\component\qa.html
\app\component\问题\list.html
\bower_components
\app.yaml
App.yaml
handlers:
- url: /components
static_dir: bower_components
- url: /app
static_dir: app
- url: /
static_files: app/index\.html
upload: app/index\.html
由于您尝试 运行 的项目似乎完全由静态文件组成,因此无需在 webapp2
中定义路由或使用任何 python 代码作为 GAE可以使用一些 app.yaml
设置来满足所有这些设置,假设您在项目的根目录中同时拥有 bower_components
和 app
文件夹,在您的情况下将类似于:
handlers:
- url: /bower_components
static_dir: bower_components
- url: /app
static_dir: app
- url: /
static_files: app/index\.html
upload: app/index\.html
我正尝试在 Google App Engine 上 运行 这个 Polymer 应用程序 (https://divshot.com/blog/web-components/building-a-qa-system-with-polymer-and-firebase/)。通过设置路由,我能够让第一页正常工作
webapp2.Route(r'/polymer', handler=project_handler.PolymerHandler, name='polymer'),
但是当 Github oAuth 成功 returns 登录用户返回回调 URL 时,问题输入屏幕 (list.html) 不会出现。 (仅供参考。当我 运行 在 GAE 之外执行完全相同的项目时,它工作得很好。所以我认为问题出在我的 GAE 路由设置上。)
<core-header-panel>
<div class="core-header">
<core-toolbar>
<div flex>Firebase Q&A</div>
<paper-menu-button halign="right">
<paper-icon-button icon="social:person"></paper-icon-button>
<paper-dropdown class="dropdown" transition="">
<core-menu class="menu">
<paper-item on-click="{{login}}" hidden?="{{!statusKnown || user}}">Login</paper-item>
<paper-item on-click="{{logout}}" hidden?="{{!statusKnown || !user}}">Logout</paper-item>
</core-menu>
</paper-dropdown>
</paper-menu-button>
<template if="{{user}}">{{user.github.username}}</template>
</core-toolbar>
</div>
<div class="content">
<app-router> <!-- This handles routing for Polymer app -->
<app-route path="/" import="/app/component/questions/list.html" element="qa-list"></app-route>
<app-route path="/app/component/questions/:id" import="/app/component/questions/view.html" element="qa-view"></app-route>
</app-router>
</div>
</core-header-panel>
显然这个应用程序路由器不工作。
你能给我指明正确的方向吗?谢谢。
项目结构
项目根目录
\应用\
\app\index.html
\app\component
\app\component\qa.html
\app\component\问题\list.html
\bower_components
\app.yaml
App.yaml
handlers:
- url: /components
static_dir: bower_components
- url: /app
static_dir: app
- url: /
static_files: app/index\.html
upload: app/index\.html
由于您尝试 运行 的项目似乎完全由静态文件组成,因此无需在 webapp2
中定义路由或使用任何 python 代码作为 GAE可以使用一些 app.yaml
设置来满足所有这些设置,假设您在项目的根目录中同时拥有 bower_components
和 app
文件夹,在您的情况下将类似于:
handlers:
- url: /bower_components
static_dir: bower_components
- url: /app
static_dir: app
- url: /
static_files: app/index\.html
upload: app/index\.html