繁体   English   中英

网址中的主干路由器根重复项

[英]Backbone Router root duplicates in the url

我刚完成我的第一个Backbone应用程序的开发,并且发现路由器有一个小问题,但似乎无法解决。

我的路线如下所示:

routes: {
  '': 'index',
  'jobs/:id': 'viewJob',
  '*default': 'notFound'
}

从服务器根目录提供应用程序时,它可以正常工作,但从子文件夹提供应用程序时,则不能。 在那种情况下,我总是得到默认路由。

我虽然将参数添加到主干历史中就可以解决问题,所以我将其添加如下:

Backbone.history.start({ pushState: true, root: '/subdir/' });

有了这个程序,应用程序似乎可以按预期加载,但是路由器会自动将添加到所有路由,并且最终被复制,因此当我第一次访问该网站时:

http://mysite.com/subdir/

它加载应用程序并将其更改为:

http://mysite.com/subdir/subdir/

这会使应用程序在重新加载页面或使用浏览器后退按钮时中断,因为该路由实际上并不存在。

避免这种情况的方法是什么? 我不想在路由中对文件夹名称进行硬编码,因为它可能会更改或从根目录提供。

更新:我刚刚意识到我自己使用router.navigate在代码中的某个位置添加了重复的文件夹名称。 我刚刚删除了它,一切正常。

只是一个小小的猜测..您真的要打开pushState吗? 如果未将服务器设置为不在新目录中提供服务,则这可能导致重新加载时出现问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM