Express 或浏览器正在向 url 添加尾部斜杠

Express or the browser is adding a trailing slash to the url

提问人:1.21 gigawatts 提问时间:11/17/2023 最后编辑:1.21 gigawatts 更新时间:11/17/2023 访问量:29

问:

Express 或浏览器在浏览器 URL 中添加尾部斜杠,这会破坏页面。换句话说,页面 url 从 this 更改为 this:

/mypage
/mypage/

直到最近,它才这样做。

我有一个重定向到的路由,我决定将我的页面资产(脚本和 css)放入一个名为 .它似乎有效,但它可能已被缓存,因为不久之后没有一个外部样式表或脚本会加载。/mypagemypage.html/mypage

并且会加载,但 url 将更改为 .请注意末尾的尾部斜杠。pagehttp://localhost/mypagehttp://localhost/mypage/

我已经删除了目录,重新启动了服务器,并清除了缓存,但它仍在添加尾部斜杠。

app.get(["/page"], pageHandler);

async function pageHandler(request: Request, response: Response, next: any) {

    var url = "page.html";
    var path = "../public";
    response.sendFile(url, {root: path});
}

好吧,似乎我的页面仍在缓存中,并且某些东西仍在重定向它。

我查看了网络选项卡,它显示它已被缓存并被重定向到 .好吧,是什么在重定向它?它必须是明确的?/mypage/mypage/

enter image description here

上图显示了网络选项卡,其中是 .然后,在它上面是加载状态为 200 的路径,最后是底部带有 ./mypage304 document / redirect/mypage/404 script

我打开了一个新窗口,没有输入网址但没有按回车键,再次清除缓存,再次输入网址,它似乎可以正常工作。我以为我以前做过,但现在它正在工作。也许 url 自动完成?

另外,在某些时候,我启用了禁用缓存选项:enter image description here

此外,chrome 调试工具似乎缓存了我的 html 页面内容。它显示的是旧版本。我在一个新窗口中打开(或关闭并重新打开 Web 调试工具)并加载了更新的 html。

节点.js Express

评论


答: 暂无答案