众所周知,node.js是属于模块化编程思想。按需
require
所需的组件库。今天所讲的是nodejs项目引入router配置后。项目部分页面url地址末尾出现了"/"
符号。
一开始我以为是路由配置添加的,查了路由配置发现都是正常配置。这时我想了下应该是业务代码跳转的时候加的。所以又去看了业务代码逻辑。发现也是正确的。最终搭建了跟服务端的环境跑起来。发现出现的问题跟服务端一致,这个时候已经开始怀疑服务器的设置了。然后本地直接node运行起来再看。发现问题还是存在。
最终看了路由配置表,琢磨其他页面的对比。发现
//错误的配置,路由名与文件名,目录名一致
router.get('/aaaaa', function(req, res, next) {
res.render('../public/aaaaa/bbb.html');
});
//正确的配置,文件命名应该以业务思想命名,对外则应列公用性名称
router.get('/abc', function(req, res, next) {
res.render('../public/qwe/qaz.html');
});
最后只要修改路由配置名或者整个文件的目录名即没有出现这个问题。
原因我想了下,应该是同名的情况下,系统不清楚是想访问目录还是文件,所以就自动添加了反斜杠"/"
。
参考这篇文章得出的结论:给网址结尾加上反斜杠
专业名称应该是,路由同名嵌套引起的
网友评论