1

我是聚合物新手,我只是从 Polymer 1.0 入门套件开始

我了解 Polymer 应用程序的结构,并使用 page.js 制作了这样的新路线。

window.addEventListener('WebComponentsReady', function() {

    // We use Page.js for routing. This is a Micro
    // client-side router inspired by the Express router
    // More info: https://visionmedia.github.io/page.js/
    page('/', function () {
      app.route = 'home';
    });

    page('/users', function () {
      app.route = 'artworks';
    });

//my new routing def. <<<<<<<<
    page('/artworks', function () {
      app.route = 'artworks';
    });

    page('/users/:name', function (data) {
      app.route = 'user-info';
      app.params = data.params;
    });

    page('/contact', function () {
      app.route = 'contact';
    });

    // add #! before urls
    page({
      hashbang: true
    });

  });

据我了解,page.js 将 app.route 设置为一些值,Polymer iron-pages 使用 app.route 选择正确的部分以显示selected="{{route}}" 代码如下:

<iron-pages attr-for-selected="data-route" selected="{{route}}">
  <section data-route="home">home section</section>
  <section data-route="users">users section</section>
  <section data-route="artworks">artworks section</section>
  <section data-route="user-info">user-info section</section>
  <section data-route="contact">contact section</section>
</iron-pages>

毕竟是什么问题!?好吧,当我使用localhost:8000/artworkspage.js 时不会将其更改为,localhost:8000/#!/artworks但它对每个其他路由地址都一样localhost:8000/users,或者localhost:8000/contact 因此 Web 浏览器将在 localhost:8000/artworks 文件夹中搜索该文件,但没有找到任何 404 错误会发生。

我现在无法理解。我在这里错过了什么?任何想法?

4

3 回答 3

2

我不知道确切原因,但聚合物似乎根本没有读取路由文件!所以我只是将路由代码复制粘贴到我的app.js文件中,现在一切正常!

所以现在我的 app.js 末尾有所有路由代码,我还在 index.html 的头部附加了 page.js(Polymer 应用程序的主文件)

我不知道为什么,但它现在正在工作。

于 2015-06-25T14:33:41.453 回答
0

不确定这是否可行,但也许使用基于您的端口的相对地址可能会有所帮助。例如尝试类似 app.route = window.location.protocol + '//' + window.location.hostname + ":8000" + window.location.pathname + "home";

于 2015-06-25T12:32:59.140 回答
0

我有同样的问题,它似乎是缓存的问题;routing.html 页面被 navigator 缓存,所以没有看到新的路由。清除缓存解决了我的问题。希望这可以帮助 !

于 2015-07-30T10:37:16.380 回答