node.js 关于Router()路由的问题?

做的是一个后台管理长这样:
clipboard.png

点击那个导航tab链接第一次可以,接下来再点就会不断被挂在/admin下,所以链接从XXX/admin 变成了XXX/admin/user 又变成 XXX/admin/admin/user 。。。好气啊卡了一天了,求解救。
路由是这样写的:
1.入口文件app.js中:
clipboard.png

2.路由文件admin.js中:
clipboard.png

3.导航的链接是这样:
clipboard.png

然后就出问题了!!

阅读 3.3k
3 个回答

询问百度知道及试了二楼的方案得到了启发~现在问题已经解决啦~感谢大佬们_(:3」∠)_,贴下两个方案给可能需要的人~
问题原因是 路径是相对路径,所以在<base>没有设置的情况下默认使用同级目录'./',也就是XXX/admin/,XXX/admin/admin/ ...
方案一 指定base
clipboard.png
路径就会是相对根目录,一直保持是根目录下的admin/user
方案二
路径前加斜杠,表示该目录为根目录的一个子目录
clipboard.png

ps:路由是写错了_(:3」∠)_已改

a 标签改成 ./user 试试

根据贴出来的代码,链接从XXX/admin 变成了XXX/admin/user 又变成 XXX/admin/admin/user 的原因应该是出在: href链接"admin/" 多了一个“/”,路径改为这样应该就可以了:

//方案一:
        <ul>
            <li><a href="admin/">Home</a></li>
            <li><a href="./user">User</a></li>
        </ul>
//方案二:
        <ul>
            <li><a href="admin/">Home</a></li>
            <li><a href="/admin/user">User</a></li>
        </ul>
//建议:
        <ul>
            <li><a href="admin">Home</a></li>
            <li><a href=“admin/user">User</a></li>
        </ul>

图片描述
ps: 看这张图的意思,用户管理的路由是“/manage_user”,但是你的路由却是“admin/user”,似乎你的路由结构组织得不对~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题