ASP.NET虚拟路径小结
一、虚拟路径的概念
“虚拟路径”是指请求 URL 中跟在服务器标识符后面的部分举例。
如绝对路径:http://www.mysite.com/MyApp/Default.aspx,其对应的虚拟路径为:/MyApp/Default.aspx。
二、虚拟路径符号
- “/”网站根目录。网站根目录即路径中的域名部分,如http://www.mysite.com/。
- “./”当前目录。
- “../”上级目录。
- “~”应用程序根目录。~ 运算符只能为服务器控件识别,由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虚拟路径小结的更多相关文章
- ASP.Net 5 上传文件通过虚拟路径存储
先贴上代码 [HttpPost] public IActionResult ImportTeaching(IFormFile file) { string root = @"Temp/tea ...
- [置顶] asp.net(c#)中相对路径(虚拟路径)和物理磁盘路径的转换
物理路径就是磁盘路径,也就是说是在磁盘上的位置,虚拟路径也就是web页面上的路径,是相对于应用程序而言的 /// <summary> /// 将物理路径转换成相对路径 /// </s ...
- asp.net(c#)中相对路径(虚拟路径)和物理磁盘路径的转换
物理路径:磁盘路径,也就是在磁盘上的位置. 虚拟路径:web页面上的路径,是相对于应用程序而言的. /// 将物理路径转换成相对路径 /// </summary> ...
- ASP.NET中的物理路径与虚拟路径
物理路径:c:\PathsAndURLs\Content\Colors.html虚拟路径:(http://localhost:53274/Content/Colors.html)路径中端口号后面的那部 ...
- Asp.net项目路径获取方法【转】
获取项目完整的绝对路径string path = System.AppDomain.CurrentDomain.BaseDirectory.ToString();string path = Serve ...
- Asp.NET 之 路径浅析
比如你的工程是Web(url是:http://localhost/web/default.aspx) Request.ApplicationPath 就是/Web 如果是站点就直接返回"/& ...
- ASP.NET获取路径的方法
原文:[转载]ASP.NET获取路径的方法 HttpContext.Current.Request.PhysicalPath; // 获得当前页面的完整物理路径.比如 F:\XFU.NSQS\p ...
- 【转载】ASP.NET获取路径的方法
HttpContext.Current.Request.PhysicalPath; // 获得当前页面的完整物理路径.比如 F:\XFU.NSQS\project\website\Default ...
- 关于ASP.Net中路径的问题
比如你的工程是Webapplication1(url是:http://localhost/webapplication1/webform1.aspx) Request.ApplicationPath ...
随机推荐
- 《JAVA与模式》之单例模式 [转]
在阎宏博士的<JAVA与模式>一书中开头是这样描述单例模式的: 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 单例模式的 ...
- 绑定枚举到dropdownlist
pageTools.BindEnumToDropdownList(typeof(enumDealerArea), ddlBmwArea, new ListItem("--请选择--" ...
- crawler_编码转换_unicode(年)
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @declare: unicode 帮助类<br> ...
- 左右linuxserver自己主动重启过程监控和简单的解决方案
转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 本周開始,新手游进行删档封測阶段,前两天表现还好,今天更新后出现几次宕机行为.比較影响玩家的測试和体验,我 ...
- set RowCount 与 top n
有时,采用top n中间n它是一个变量,这将需要使用()去完成: declare @count1 int set @count1 = 8 select top <strong>(@coun ...
- CSDN专家吐槽实录
今天打开CSDN发现界面上的几个图标发生了变化,一个小小的变化,却引起了诸多CSDN专家对CSDN社区未来发展的思考,我特意从群里讲对话黏贴出来,希望各位能给予积极评价和建议. 你已经是群成员了,和大 ...
- leetcode先刷_Merge Two Sorted Lists
非常easy问题. 唯一的地方可以具有更具挑战是确保不会引入额外的空间.查找开始值最小的名单列表的新掌门人,头从列表中删除.其他操作应该没有问题. class Solution { public: L ...
- JS模板引擎:tppl
全球最快的JS模板引擎:tppl 废话不多说,先上测试: 亲测请访问:[在线测试地址]单次结果不一定准确,请多测几次. tppl 的编译渲染速度是著名的 jQuery 作者 John Resig 开发 ...
- 快速构建Windows 8风格应用26-本地应用数据
原文:快速构建Windows 8风格应用26-本地应用数据 本篇博文主要介绍如何获取应用的设置和文件容器.如何将数据写入设置.如何从设置中获取数据.如何删除设置中数据.如何将数据写入文件.如何从文件中 ...
- Url.Content
Url.Content了,Url是ViewPage的一个对象,它最常用的一个方法就是Content,它的功能是返回某个文件的路径.一般情况下,在使用了ASP.NET MVC后,目录结构变得有点诡异,像 ...