zoukankan      html  css  js  c++  java
  • ASP.NET虚拟路径小结

    一、虚拟路径的概念

    “虚拟路径”是指请求 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应用程序根目录动态运算符,能够正确地解析出客户端所需的地址路径,消除了虚拟目录及文件目录层级变化所带来的影响。其他路径表示一旦给出即为静态,当目录结构发生变化时,会有一定的影响。

  • 相关阅读:
    Mongoose 校验参数
    meta大全
    go并发之WaitGroup
    用Tasker实现收到Android手机短信自动转发到微信
    不用双卡iPhone,仅需五步,老iOS手机自动给你转发短信
    怎样选择莫代尔秋衣裤
    关于ROS的dst-nat和src-nat的理解,和公司的一个案例以及解决方案
    关于ADSL拨号多拨跟运营商AC服务器之间的关系和一些技巧,群里大神给的经验
    查询网站的dns,get,劫持检测等等
    zabbix自定义key类型之计算(Calculated items) 在流量曲线图里,把各个item的值叠加的方法
  • 原文地址:https://www.cnblogs.com/njl041x/p/3625248.html
Copyright © 2011-2022 走看看