应用程序相对URL

时间:2010-08-20 12:16:45

标签: asp.net iis url iis-7 relative-path

我刚刚在VS2010中创建了一个新的ASP.NET Web应用程序,并将其设置为IIS7中的应用程序。

不确定这是否相关,但代码实际上位于\ myserver \ projects \ epeui \ epe文件夹中(projects文件夹是我的默认网站的根目录)。该应用程序挂起了本机默认网站的根目录:http://myserver/epe/。并配置为IIS中的应用程序。

通常,我使用的是相对于应用程序根目录的URL,因此我的CSS文件位于/ styles /中,我的图像位于/ images /中,我的JavaScript文件位于/ scripts /中。

鉴于IIS中的应用程序配置如此,为了访问我的徽标,我希望使用/images/mylogo.png,一个与应用程序相关的URL。

但是,这对本网站不起作用;相反,我需要使用相对于默认网站(/epe/images/mylogo.png)的父路径(../images/mylogo.png)或URL。出于便携性的原因,这些都不是很好。

我也尝试使用代字号来使用相对于虚拟路径的URL(即应用程序根目录)=〜/ images / mylogo.png

我发誓我以前做了一千次,但显然搞砸了......有什么建议吗?

有人至少可以确认,对于IIS中的标准应用,/mypage.html应该引用http://myserver/myapp/mypage.html而不是http://myserver/mypage.html吗?

1 个答案:

答案 0 :(得分:1)

/mypage.html将映射到根http://myserver/mypage.html,这是正确的行为

SERVER SIDE控件上的〜将映射到应用程序根目录(因此<asp:HyperLink NavigateUrl="~/mypage.html"...>将映射到http://myserver/myapp/mypage.html

我在过去,特别是css和javascript文件必须使用<%= Request.ApplicationPath %>/myPage.html。有时最好将它定义为global.asax.cs中的全局变量,以便全部使用它。您实例中的Request.ApplicationPath将为“/ myapp”

我也很努力。