gpt4 book ai didi

javascript - 客户端相对寻址并允许应用程序 URL 中没有尾部斜杠

转载 作者:行者123 更新时间:2023-12-02 21:29:57 24 4
gpt4 key购买 nike

我在 ASP.NET Core 3.1 中遇到了这个奇怪的问题,而我的 ASP.NET 4 应用程序中没有这个问题,如果我通过以下方式访问我的应用程序

http://example.com/Application/

然后一切正常,但如果我尝试去

http://example.com/Application(无尾部斜杠)

然后客户端相对地址解析为 http://example.com/Resource 而不是 http://example.com/Application/Resource

我在应用程序的根目录方面遇到了类似的问题。例如,/Resource 似乎意味着相对于域,因此产生 http://example.com/ResourceResource 本身正确地生成 http://example.com/Application/Resource。但如何指代“根”本身呢?重定向到空字符串似乎会刷新页面,而不是重定向到应用程序根目录。

我通过使用 . 并使用 ./Resource 而不是 Resource 来解决这个问题。这似乎适用于几乎所有情况,除了在不带尾部斜杠的情况下访问应用程序时。

访问 http://example.com/Application 时,AJAX 会在请求中调用 ./Method?handler=name 形式的目标 URL http://example.com/Method?handler=name(缺少路径的 Application 部分)。

如何让客户端相对地址始终引用正确的应用程序根地址?或者这可能是正常行为吗?

最佳答案

您需要将主模板中的基本 URL(ASP.NET Core MVC 中的 _Layout.cshtml)设置为应用程序路径。

_Layout.cshtml添加

<base href="~/"/>

~/是您的应用程序路径(也称为 Web 根目录),ASP.NET Core 将替换为 http://example.com/Application 。一般来说,如果您需要应用程序相对路径,您应该始终执行 <a href="~/app/relative/path"></a> .

当涉及静态 json 文件时,这可能有点困难,所以 <base href="..."/>在这种情况下应该有效

关于javascript - 客户端相对寻址并允许应用程序 URL 中没有尾部斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60646039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com