因此,在我的网站上,我有几页内容。在其中一个页面上,即使我将浏览器指向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请求状态代码。
答案 0 :(得分:0)
默认情况下,严格的路由功能是禁用的,因此它会将/ guides和/ guides /视作相同,因此您访问过的所有内容都会每次替换。 因此,启用此严格路由
var router = express.Router({ strict: true });
现在它不会将它们视为相同,也不会将/ guides更改为/ guides/。