所以我是一个导航栏,我已经在#34; Games"中找到了一个子目录。叫" Cross"所以,/ games / cross。现在,从那个页面,我试图再次从导航栏访问游戏页面,但它的显示/游戏/游戏...我该如何解决这个问题?我有以下......
Router.configure({
layoutTemplate: 'layoutDefault'
});
Router.route('/', function(){
this.render('main');
});
Router.route('/contact', {
template: 'contact'
});
Router.route('/games', {
template: 'games'
});
Router.route('/games/cross', {
action: function() {
if(Roles.userIsInRole(Meteor.user(), ['normal' , 'admins'])) {
this.render('cross')
}
else
this.render('denied')
}
});
答案 0 :(得分:4)
此外,您可以使用辅助函数pathFor
,它返回任何路径的URL路径组件。
{{pathFor 'path name'}}
要使用pathFor
,您必须在路线中添加name
属性。
Router.route('/contact', {
name: 'content-view'
template: 'contact'
});
<a href="{{pathFor 'content-view'}}">contact</a>
因此,如果您决定更改路线,则无需手动更新所有链接。
答案 1 :(得分:0)
如果我的理解是正确的,那么当您进入/games/cross
页面时,您会使用导航栏尝试导航回/games
页面,但您的浏览器位置栏现在会显示/games/games
而不只是/games
,可能你的路由器什么也没做? (或者找到你为路线找不到的任何东西)
这可能是导航栏链接中的一个问题:您是否尝试在/
属性值的开头添加斜杠href
,以便链接相对于您的域名,不是当前的页面?
<a href="/games">Games</a>
而不是:
<a href="games">Games</a>