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

Javascript 加载页面时将正斜杠附加到url的末尾,javascript,node.js,express,Javascript,Node.js,Express,所以在我的网站上,我有几页内容。在其中一个页面上,即使我将浏览器指向example.com/guides,地址栏也会附加一个正斜杠,这样我就只剩下example.com/guides/。需要说明的是,此页面的加载非常好。当我将地址栏指向example.com/about时,它会保持url不变并加载页面。当我访问example.com/about/时,它会加载相同的页面,并保留正斜杠。以下是我的服务器如何处理这些get请求的代码: app.get('/about', (req, res) =>

所以在我的网站上,我有几页内容。在其中一个页面上,即使我将浏览器指向
example.com/guides
,地址栏也会附加一个正斜杠,这样我就只剩下
example.com/guides/
。需要说明的是,此页面的加载非常好。当我将地址栏指向
example.com/about
时,它会保持url不变并加载页面。当我访问
example.com/about/
时,它会加载相同的页面,并保留正斜杠。以下是我的服务器如何处理这些get请求的代码:

app.get('/about', (req, res) => {
    res.sendFile(__dirname + '/views/about.html');
});
app.get('/guides', (req, res) => {
    res.sendFile(__dirname + '/views/guides.html');
});
如您所见,两个html文件的呈现方式完全相同。我在这两个页面上都没有JavaScript,也没有在这两个页面上加载任何外部库。此指南页面是唯一具有此行为的页面。控制台或我的服务器日志中也没有错误。先谢谢你

编辑:
在my developer console中检查网络页面后,它返回获取请求状态代码的
301永久移动(从磁盘缓存)

默认情况下,严格路由被禁用,因此它将/guides&/guides/视为相同,因此无论您访问过什么,每次都会替换一个。 因此,通过以下方法启用严格路由

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

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

是否尝试将其从浏览器的匿名模式打开?也许浏览器的缓存行为有帮助吗?:或者这个?:@num8er尝试过那个,同样的问题。@OliverRadini两个链接都相关,但两个解决方案都不起作用。我的浏览器的get请求返回状态代码301,这似乎是一个缓存问题。您如何运行web应用?在一些http服务器后面(比如:nginx、apache)?公众是否可以观看它返回的内容?怎么样:
curl-vhttp://localhost:3000/about
-要查看它返回的标题。另外,请提供所有应用程序路由和应用程序初始化代码。这将不起作用,因为我没有使用路由器。所以我试着使用
app.enable('strict routing')没有帮助。好的,尝试在express实例中添加direclty,如express=express({'strict':true})相同的结果,没有任何更改。是的,我看到了,我没有在express中添加direclty。您需要添加一个路由器,并从该路由器创建类似于此路由器的路由。get('/guides',function(req,res,next){})可能还有其他解决方案,但我只知道这一点。