我是聚合物新手,我只是用Polymer 1.0 starter-kit
开始我理解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/artworks
时,page.js不会将其更改为localhost:8000/#!/artworks
,但对于localhost:8000/users
或localhost:8000/contact
等其他每个路由地址都是如此
因此,Web浏览器将在localhost:8000 / artwork文件夹中搜索该文件,并且找不到任何内容,因此将发生404错误。
我现在无法理解。我错过了什么? 任何的想法?
答案 0 :(得分:2)
我不确切知道为什么,但似乎聚合物根本没有读取路由文件!所以我只是在我的app.js
文件中复制粘贴路由代码,现在一切正常!
所以现在我的app.js在最后都有所有的路由代码,我还将page.js附加在index.html的头部(Polymer应用程序的主文件)
我不知道为什么,但它现在正在运作。
答案 1 :(得分:0)
不确定这是否可行,但是根据您的端口使用相对地址可能有所帮助。 例如尝试类似的东西 app.route = window.location.protocol +&#39; //&#39; + window.location.hostname +&#34;:8000&#34; + window.location.pathname +&#34; home&#34 ;;
答案 2 :(得分:0)
我遇到了同样的问题,似乎是缓存问题; routing.html页面由navigator缓存,因此没有看到新路由。 清除缓存解决了我的问题。 希望这有帮助!