在页面加载时,将正斜杠附加到url的末尾

时间:2019-02-19 13:05:52

标签: javascript node.js express

因此,在我的网站上,我有几页内容。在其中一个页面上,即使我将浏览器指向example.com/guides,地址栏也会添加一个斜杠,从而使我剩下example.com/guides/。需要明确的是,此页面可以很好地加载。当我将地址栏指向example.com/about时,它会按原样保留网址并加载页面。当我访问example.com/about/时,它会加载相同的页面,并且正斜杠将保留。这是服务器处理这些获取请求的代码:

app.get('/about', (req, res) => {
    res.sendFile(__dirname + '/views/about.html');
});
app.get('/guides', (req, res) => {
    res.sendFile(__dirname + '/views/guides.html');
});

如您所见,两个html文件都以完全相同的方式呈现。我在两个页面中的任何一个上都没有JavaScript,并且在任何一个页面上都没有加载任何外部库。本指南页面是唯一具有这种行为的页面。控制台或服务器日志中也没有错误。预先谢谢你。

编辑: 在我的开发人员控制台中检查了网络页面后,它返回301 Moved Permanently (from disk cache)作为GET请求状态代码。

1 个答案:

答案 0 :(得分:0)

默认情况下,严格的路由功能是禁用的,因此它会将/ guides和/ guides /视作相同,因此您访问过的所有内容都会每次替换。 因此,启用此严格路由

var router = express.Router({ strict: true });

现在它不会将它们视为相同,也不会将/ guides更改为/ guides/。