![](/img/trans.png)
[英]How to create Application in the IIS Default Web Site root (virtual path : '/')?
[英]Virtual Directory root vs Default web site root
我使用的是iis 5.1,其中我们只有一个默认网站,
我有两个项目v2和v3
我的网站指向v2项目,并且具有一些文件夹图像,样式等,现在我在该网站下有一个虚拟目录,该目录承载着v3项目,并且具有与v2相同的文件夹层次结构
在我拥有的两个项目的主页中
img src =“ \\ images \\ edlogo.gif” alt =“ logo” />
但这显示的是v2目录中的同一图像,我如何为两个项目显示不同的图像。 使用“ \\”获取网站的根目录,但是我如何获取该网站下的虚拟目录的根目录
此静态方法将您的完整http路径返回到应用程序的根文件夹(网站或虚拟目录)
public static string GetAppRootUrl(bool endSlash) {
string host = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority);
string appRootUrl = HttpContext.Current.Request.ApplicationPath;
if (!appRootUrl.EndsWith("/")) //a virtual
{
appRootUrl += "/";
}
if (!endSlash)
{
appRootUrl = appRootUrl.Substring(0, appRootUrl.Length - 1);
}
return host + appRootUrl;
}
因此,您可以在页面中编写:
<img src="<%= Server.HtmlEncode(GetAppRootUrl(false)) %>/images/edlogo.gif" alt="logo"/>
也许您可以使用HttpRuntime.AppDomainAppVirtualPath
或Request.ApplicationPath
。
Page.ResolveUrl("~")
太有用了。
我的虚拟目录/ v2的用法示例
HttpRuntime.AppDomainAppVirtualPath = /v2
Request.ApplicationPath = /v2
Request.FilePath = /v2/Inicio.aspx
GetAppRootUrl(false) = http://localhost:2029/v2
Page.ResolveUrl("~") = /v2/
您的帖子中缺少某些内容,您可以发表吗?
您可以使用相对路径
<img src="../images/edlogo.gif" alt="logo"/>
您的代码示例将始终从根目录获取它。
使用相对网址。 参见此处,例如,“ http://v2/default.html”页面中的“ images / bg.jpg”将指向“ http://v2/images/bg.jpg”,而页面“ http: //v2/v3/default.html”将指向“ http://v2/v3/images/bg.jpg”
因此,您的代码变为:
img src="images\\edlogo.gif" alt="logo"/>
但是,不幸的副作用是,您不能在不破坏链接的情况下在网站目录结构中移动主页。
我很好奇,但是为什么您会选择这种设置? 仅将v3设置为网站并将其放置在与v2相同的目录级别上会不会更容易?
查看System.Web.VirtualPathUtility类和方法(.Net 2.0及更高版本)
http://msdn.microsoft.com/en-us/library/system.web.virtualpathutility.aspx
查看System.Web.HttpRequest对象
http://msdn.microsoft.com/en-us/library/system.web.httprequest.filepath(v=vs.100).aspx
Public Function GetRoot() As String
Return System.Web.VirtualPathUtility.MakeRelative(Request.FilePath, Request.ApplicationPath)
End Function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.