如何获得服务器绝对路径

时间:2009-09-28 14:20:06

标签: asp.net client-server

我有2个问题

  1. 如何在asp.net中获取绝对的Uri。  例如:输入:“〜/ Files /”,输出:“www.sampleweb.com/Files /”

  2. 客户端url中的“go to root”命令是什么样的 服务器端命令“〜/ Files /”

  3. 例如:

    档案位置

    myAspProjectName/Files/aa.jpg
    myAspProjectName/User/bb.aspx
    

    进入bb.aspx

    <asp:image ImageUrl="~/Files/aa.jpg" id="img1" runat="server"/>
    

    这项工作很好。但

    <img src="~/Files/aa.jpg" alt=""/>
    

    不起作用

2 个答案:

答案 0 :(得分:3)

就像马克B所说的那样,没有明显的句法捷径。

如果您正在使用当前请求,那么您可以使用Request.Url或使用Page.ResolveURL("~/some/path")的任意文件,如果您使用的是ASP.Net页面。这些方法将生成绝对相对URI,即形式为/ path / somefile的方法,然后如果您使用Mark B的方法获取主机名,则可以将这两个内容连接在一起。

至于(2)我认为你可能意味着绝对相对的URI。如果相对URI以正斜杠开头,则将其解析为相对于基本域,例如如果您在页面http://yourdomain.com/somedir/somepage.aspx上,并且您看到/otherdir/somepage.aspx的链接,那么您最终会在http://yourdomain.com/otherdir/somepage.aspx

答案 1 :(得分:0)

我认为没有一种快捷语法可以将物理路径映射到包含域名的虚拟路径。但是,这将有效:

string absoluteUri = Request.ServerVariables["SERVER_NAME"] + Request.ServerVariables["URL"];

不确定第二个问题是什么意思 - 请你扩展吗?