2010-08-20 80 views
2

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

不知道这是否相关,但代码物理上驻留在\ myserver \ projects \ epeui \ epe文件夹中(项目文件夹是我默认网站的根目录)。该应用程序挂起本机默认网站的根目录:http://myserver/epe/。并在IIS中配置为应用程序。

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

鉴于应用程序在IIS中配置为这样,要访问我的徽标,我期望使用/images/mylogo.png,一个与应用程序相关的URL。

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

我使用波浪线为使用所谓相对于虚拟路径是网址(即应用程序的根)也试图=〜/图像/ mylogo.png

我宣誓我做这个一千时间之前,但显然搞砸了某个地方...任何建议?

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

回答

1

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

的〜在服务器端控制将映射到应用程序根目录(所以<asp:HyperLink NavigateUrl="~/mypage.html"...>将映射到http://myserver/myapp/mypage.html

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

我也为此付出了很多努力。