无法在 Polymer 1.0 入门套件中创建新路由(通过 page.js 和 iron-page)
cant make new routing in Polymer 1.0 starter-kit (via page.js and iron-page)
我是 Polymer 的新手,我刚开始使用 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 设置为某些值,聚合物铁页使用 app.route 至 select 右侧部分显示 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/artworks 文件夹中搜索该文件,但没有找到任何内容,因此会出现 404 错误。
我现在无法理解。我在这里错过了什么?
任何的想法?
不确定这是否可行,但使用基于您的端口的相对地址可能会有所帮助。
例如尝试类似
app.route = window.location.protocol + '//' + window.location.hostname + ":8000" + window.location.pathname + "home";
我不知道为什么,但似乎 Polymer 根本没有读取路由文件!所以我只是将路由代码复制粘贴到我的 app.js
文件中,现在一切正常!
所以现在我的 app.js 的所有路由代码都在末尾,我还在 index.html(Polymer 应用程序的主文件)的头部附加了 page.js
我不知道为什么,但现在可以了。
我遇到了同样的问题,看来是缓存的问题; routing.html 页面已被导航器缓存,因此看不到新路线。
清除缓存解决了我的问题。
希望这对您有所帮助!
我是 Polymer 的新手,我刚开始使用 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 设置为某些值,聚合物铁页使用 app.route 至 select 右侧部分显示 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/artworks 文件夹中搜索该文件,但没有找到任何内容,因此会出现 404 错误。
我现在无法理解。我在这里错过了什么? 任何的想法?
不确定这是否可行,但使用基于您的端口的相对地址可能会有所帮助。 例如尝试类似 app.route = window.location.protocol + '//' + window.location.hostname + ":8000" + window.location.pathname + "home";
我不知道为什么,但似乎 Polymer 根本没有读取路由文件!所以我只是将路由代码复制粘贴到我的 app.js
文件中,现在一切正常!
所以现在我的 app.js 的所有路由代码都在末尾,我还在 index.html(Polymer 应用程序的主文件)的头部附加了 page.js
我不知道为什么,但现在可以了。
我遇到了同样的问题,看来是缓存的问题; routing.html 页面已被导航器缓存,因此看不到新路线。 清除缓存解决了我的问题。 希望这对您有所帮助!