Express 在 url 末尾奇怪地添加斜杠

2024-02-16

我正在使用 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(使用前将#替换为@)

Express 在 url 末尾奇怪地添加斜杠 的相关文章

随机推荐