一、虚拟路径的概念

“虚拟路径”是指请求 URL 中跟在服务器标识符后面的部分举例。

如绝对路径:http://www.mysite.com/MyApp/Default.aspx,其对应的虚拟路径为:/MyApp/Default.aspx。

二、虚拟路径符号

  1. “/”网站根目录。网站根目录即路径中的域名部分,如http://www.mysite.com/。
  2. “./”当前目录。
  3. “../”上级目录。
  4. “~”应用程序根目录。~ 运算符只能为服务器控件识别,由ASP.NET解析。 不能将 ~ 运算符用于客户端元素。

三、绝对 URL 路径

如:http://www.mysite.com/MyApp/Default.aspx

四、网站根目录相对路径

此路径将根据网站根目录进行解析。如/images/logo.png

五、应用程序绝对路径

由ASP.NET动态解析,当为网站时与网站根目录表示相同,当为虚拟目录时为网站根目录+虚拟目录名

六、获取应用程序绝对路径

方法一:VirtualPathUtility.ToAbsolute(String)

方法二:Page.ResolveUrl(String)

举例:

VirtualPathUtility.ToAbsolute("~/Default.aspx ");

Page.ResolveUrl("~/Default.aspx ");

应用程序部署为站点,输出为:/Default.aspx

应用程序部署为虚拟目录(MyApp),输出为:/MyApp/Default.aspx

七、比较网站根目录(/) 与 应用程序根目录(~)

概念

使用范围

优点

缺点

“/”

网站根目录

客户端及服务器端

资源文件只相对于网站根目录进行解析,在站点内任何位置被引用均有效,即消除了文件目录层级改变对资源文件引用的影响

当应用程序部署为虚拟目录时,无法自动解析出虚拟目录,致使资源应用无效

“~”

应用程序根目录

服务器端

同上,并且当应用程序部署为虚拟目录时,会自动解析出虚拟目录,返回正确的引用地址

八、网站根目录相对路径 与 应用程序绝对路径 解析结果示例说明

网站

虚拟目录(MyApp)

/images/logo.png

/images/logo.png

/images/logo.png

~/images/logo.png

/images/logo.png

/MyApp/images/logo.png

网站

虚拟目录

<asp:Image ID="Image1" runat="server" ImageUrl="/images/logo.png" />

正常显示

无法显示(除非网站目录下恰巧也存在同样的资源文件)

<asp:Image ID="Image2" runat="server" ImageUrl="~/images/logo.png" />

正常显示

正常显示

总结说明:“~”为ASP.NET应用程序根目录动态运算符,能够正确地解析出客户端所需的地址路径,消除了虚拟目录及文件目录层级变化所带来的影响。其他路径表示一旦给出即为静态,当目录结构发生变化时,会有一定的影响。

ASP.NET虚拟路径小结的更多相关文章

  1. ASP.Net 5 上传文件通过虚拟路径存储

    先贴上代码 [HttpPost] public IActionResult ImportTeaching(IFormFile file) { string root = @"Temp/tea ...

  2. [置顶] asp.net(c#)中相对路径(虚拟路径)和物理磁盘路径的转换

    物理路径就是磁盘路径,也就是说是在磁盘上的位置,虚拟路径也就是web页面上的路径,是相对于应用程序而言的 /// <summary> /// 将物理路径转换成相对路径 /// </s ...

  3. asp.net(c#)中相对路径(虚拟路径)和物理磁盘路径的转换

    物理路径:磁盘路径,也就是在磁盘上的位置. 虚拟路径:web页面上的路径,是相对于应用程序而言的. /// 将物理路径转换成相对路径           /// </summary>   ...

  4. ASP.NET中的物理路径与虚拟路径

    物理路径:c:\PathsAndURLs\Content\Colors.html虚拟路径:(http://localhost:53274/Content/Colors.html)路径中端口号后面的那部 ...

  5. Asp.net项目路径获取方法【转】

    获取项目完整的绝对路径string path = System.AppDomain.CurrentDomain.BaseDirectory.ToString();string path = Serve ...

  6. Asp.NET 之 路径浅析

    比如你的工程是Web(url是:http://localhost/web/default.aspx) Request.ApplicationPath 就是/Web 如果是站点就直接返回"/& ...

  7. ASP.NET获取路径的方法

    原文:[转载]ASP.NET获取路径的方法 HttpContext.Current.Request.PhysicalPath;    // 获得当前页面的完整物理路径.比如 F:\XFU.NSQS\p ...

  8. 【转载】ASP.NET获取路径的方法

    HttpContext.Current.Request.PhysicalPath;    // 获得当前页面的完整物理路径.比如 F:\XFU.NSQS\project\website\Default ...

  9. 关于ASP.Net中路径的问题

    比如你的工程是Webapplication1(url是:http://localhost/webapplication1/webform1.aspx) Request.ApplicationPath ...

随机推荐

  1. hdu Diophantus of Alexandria(素数的筛选+分解)

    Description Diophantus of Alexandria was an egypt mathematician living in Alexandria. He was one of ...

  2. Android - 视图Android应用(apk)签名

    视图Android应用(apk)签名 本文地址: http://blog.csdn.net/caroline_wendy 在微博.微信开放平台注冊应用时,须要填写应用(apk)的签名,能够使用keyt ...

  3. MAC使用小技巧(一)

    [ Mac OS X 终端命令开启功能 ] 1.Lion下显示资源库方法一:显示在“终端”中输入下面的命令:chflags nohidden ~/Library/ 隐藏在“终端”中输入下面的命令:ch ...

  4. jQuery 文件碎片

    经JS操作DOM节点可以是节点的单位,让我们连接节点,能够createElement,createTextNode,然后,appendChild定在一起,然后再用appendChild或insertB ...

  5. 基于HTTP/2和protobuf的RPC框架:GRPC

    谷歌发布的首款基于HTTP/2和protobuf的RPC框架:GRPC Google 刚刚开源了grpc,  一个基于HTTP2 和 Protobuf 的高性能.开源.通用的RPC框架.Protobu ...

  6. IOS中 类扩展 xib

    一.类扩展(class extension,匿名分类) .格式 @interface 类名 () { // 成员变量... } // 方法声明... @end .作用 > 写在.m文件中 > ...

  7. 关于springmvc 方法注解拦截器的解决方案,多用于方法的鉴权

    最近在用SpringMvc写项目的时候,遇到一个问题,就是方法的鉴权问题,这个问题弄了一天了终于解决了,下面看下解决方法 项目需求:需要鉴权的地方,我只需要打个标签即可,比如只有用户登录才可以进行的操 ...

  8. MonkeyDevcie API 实践全记录

    1.    背景 使用SDK自带的NotePad应用作为实践目标应用,目的是对MonkeyDevice拥有的成员方法做一个初步的了解. 以下是官方列出的方法的Overview. Return Type ...

  9. Maven学习笔记(一) : 简单介绍

    近期在学习<maven实战>,写点东西记录一下.^_^ 何为Maven:      Maven主要服务于基于java平台的项目构建.依赖管理和项目信息管理. Maven是优秀的构建工具: ...

  10. linux下的watch命令

    linux下的watch命令 在linux下,watch是周期性的执行下一个命令,并全屏显示执行结果. watch [-dhvt] [-n <seconds>] [--difference ...