路径模式错误之前是不是有前导“/”?

Posted

技术标签:

【中文标题】路径模式错误之前是不是有前导“/”?【英文标题】:Is leading '/' before path pattern mistake?路径模式错误之前是否有前导“/”? 【发布时间】:2021-02-24 21:38:41 【问题描述】:

URL 模式不带前导 / 字符,它不是 URL 路径的一部分。 当请求 URL 路径与 URL 模式匹配时,请求将被转发到端点函数,生成响应。 (Martin Freeman。Pro ASP.NET Core 3。第 284 页。最后一段。)

这是关于通过 app.UseEndpoint 为 EndpointMiddleware 配置映射的信息(参见下面的示例)

首先,为什么'/'不是路径的一部分? HttpContext.Request.Path 以'/'开头。

其次,这些代码和使用所有其他模式的代码以“/”开头的代码与不带“/”的代码的工作方式相同。是作者弄错了还是我看不懂?

app.UseEndpoints(rb =>

    rb.Map("/var1/*others", async (ctx) =>
    
        await ctx.Response.WriteAsync($"ctx.Request.RouteValues["var1"]");
    );
);

【问题讨论】:

【参考方案1】:

这里是官方link,The following table demonstrates example route templates and their behavior:之后可以看到一张表。 表中Example Matching URI都是/开头的,也就是说匹配的url都需要以/开头,而不是方法中的路由模式。

【讨论】:

以上是关于路径模式错误之前是不是有前导“/”?的主要内容,如果未能解决你的问题,请参考以下文章

在进入修复模式之前调试 Windows 内核?

不能使用前导 ../ 退出***目录

在 Rust 中将二进制字符串转换为带有前导零的十六进制字符串

RODBC 读取错误,其中 excel 列包含前导 NA

如何用前导 0 开始 Python 整数? [复制]

VS配置QtTools的路径时报“路径中具有非法字符”错误