gpt4 book ai didi

c# - Localhost中如何处理相对路径和绝对路径

转载 作者:行者123 更新时间:2023-11-30 20:04:36 28 4
gpt4 key购买 nike

好的,我们大多数人在将 Asp.NET Web 应用程序发布到生产服务器之前,先在我们的本地主机上开发和测试它们。但对我来说,localhost 有时很痛苦,因为我无法正确获得绝对路径。因为可以说我的应用程序位于 http://localhost/MyApp/ 我无法正确获取主机。我可以用一些代码得到它,但我想让它更通用,所以每当其他开发人员将相同的应用程序放在另一个位置,例如 http://localhost/TheirApp,它应该可以工作很好。

示例问题:

每当我使用像 /aboutus.aspx 这样的绝对路径时,它会导致此 http://localhost/aboutus.aspx 并省略 MyApp。如果我使用相对路径,那么它会变成 http://localhost/MyApp/IamHere.aspx/aboutus.aspx 这相当令人不安。

因此,如果 Request.Url.AuthorityRequest.Url.Host 将返回 http://localhost/MyApp 那么我们可以追加我们的 url 使用这些并找到一个很好的解决方案。

替代解决方案:

我可以这样做:

if(Request.Url.Host.StartsWith("localhost"))
{
string[] segments = Request.Url.AbsolutePath.Split("/");
var localHost = Request.Url.Authority + "/" + segments[0];
}

然后我可以使用 localHost 变量并将我的路径附加到它。

但我想知道你们是如何处理这样的问题的?

谢谢,

最佳答案

我不太确定您要实现的目标,但您可以使用波浪号 (~) 来引用 Web 应用程序的根目录,这应该可以解决您的问题。

string url = ResolveUrl("~/aboutus.apsx");

如果 ~ 应该是 localhostlocalhost:34534someserver.net,ASP.NET 应用程序会自行判断/Deep/Path 或其他任何内容。

关于c# - Localhost中如何处理相对路径和绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700142/

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