我正在使用 Node.js 和 Express 框架来开发网站。我遇到了 url 的奇怪行为。当我单击相关链接 url 时,url 变为“localhost:3000/images/” - 如您所见,末尾添加了斜杠。但是当我将所有“图像”更改为“img”或 url 变为“localhost:3000/img”时,不会添加斜杠。为什么路由器会有这样的行为?代码写在下面。 (我使用的是Jade模板引擎)
//bar.jade
li.nav-item
a.nav-link(href='images')
i.icon-camera
| Images
//end of bar.jade
//images.js (router)
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('images', { title: 'Express'});
});
module.exports = router;
//end of router .js
//app.js
var images =require('./routes/images');
........
........
app.use('/images',images);
//end of app.js
我想我知道发生了什么事:你也在使用express.static()
中间件,在您的公共目录中您有一个名为images/
.
当您尝试请求与公共目录匹配的 URL(即使该目录为空或与另一个路由匹配)时,此中间件将生成以斜杠结尾的重定向。
要禁用此行为,请设置redirect option http://expressjs.com/en/4x/api.html#express.static to false
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)