如何在 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&amp;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_componentsapp 文件夹,在您的情况下将类似于:

handlers:
- url: /bower_components
  static_dir: bower_components

- url: /app
  static_dir: app

- url: /
  static_files: app/index\.html
  upload: app/index\.html