从应用程序外部调用时,为什么这些Polymer路由不起作用?

时间:2015-06-14 16:39:25

标签: javascript polymer polymer-1.0

我正在使用聚合物入门套件1.0.1进行简单的应用。我在routing.html

中有这个
<script>
  window.addEventListener('WebComponentsReady', function() {
   page('/users/:name', function (data) {
    app.route = 'user-info';
    app.params = data.params;
   });
   //other routes...
   page({
    hashbang: false
  });
  });

我还有一个index.html文件:

<iron-pages attr-for-selected="data-route" selected="{{route}}">
  <section data-route="user-info">
          <paper-material elevation="1">
            <h2 class="paper-font-display2">
            User:<span>{{params.name}}</span>
            </h2>
            <div>This is <span>{{params.name}}</span>'s section</div>
          </paper-material>
    </section>
</iron-pages>

当我在应用程序中有一个指向这条路线的链接时:

<a href="/users/john"></a>

页面加载,地址栏中的网址为http://localhost:3000/users/john。但是当我直接在网址中输入相同的地址并重新加载页面时,我得到了

`Cannot GET /users/john`

如何避免此错误并具有与在应用程序中单击链接时相同的行为。

1 个答案:

答案 0 :(得分:0)

因为当你直接点击那条路径localhost:3000/users/john时你的index.html文件将无法加载......我可以给你两个不错的选择来解决这个问题

  1. 在page.js上使用hashbang: true
  2. 使用此元素进行路由,它仍在开发中,但非常整洁easy-router