对于ASP.NET的路径问题,一直都是云里雾里,没有去详细的理解,今天正好可以梳理一下它们之间的关系和使用方法。而若想明白路径的表示方式的使用方法和区别以及注意事项可以通过下面的几个概念来进一步加深:

绝对路径和相对路径

  • 绝对路径

每个网页都有一个唯一的地址,它就是该网页的绝对路径。绝对路径提供所链接文档的完整URL,而且包括所使用的协议(例如对于网页,通常使用HTTP)。例如上面的第一种写法就是一个绝对路径(虽然是一个不存在的地址)。

必须使用绝对路径才能链接到其他服务器上的文档。尽管对本地链接(即到同一站点内文档的链接)也可以使用绝对路径链接,但不建议采用这种方式,因为一旦将此站点易懂到其他域,则所有本地绝对路径链接都将断开。

当需要在站点内移动文件时,对本地链接使用相对路径还能提供更大的灵活性。

  • 相对路径

文档相对路径对于大多数Web站点的本地连接来说,是最适用的路径。在当前文档与所链接的文档处于同一文件夹内,而且可能保持这种状态的情况下,文档相对路径特别有用。文档相对路径还可用来链接到其他文件夹中的文档,方法是利用文件夹层次结构,制定从当前文档到所链接的文档的路径。

文档相对路径的基本思想是省略掉对于当前文档和所链接的文档都相同的绝对URL部分,而只是提供不同的路径部分。例如,假设一个文档集合的结构如图所示:

如果要创建从booklist1.html到其他文件的链接,应注意以下问题:

① 若要从booklist1.html连接到booklist2.html(两个文件在同一文件夹中),文件名就是相对路径:booklist2.html。

② 若要链接到book001.html,(在booksDetail的子文件夹内)可使用相对路径:booksDetail/book001.html。

每个正斜杠(/)表示在文件夹层次结构中下移一级。

③ 若要链接到main.html(在父文件夹中,booklist1.html向上一级),可使用相对路径: ../main.html。

每个../表示在文件夹层次结构中上移一级。

④ 若要链接到index.html(在父父文件夹中,booklist1.html向上两级),可使用相对路径: ../../index.html。

⑤ 若要链接到header.html(在父父文件夹的其他子文件夹中),可使用相对路径: ../../shared/header.html。

其中../../向上移至父父文件夹;shared/向下移至shared文件夹中。

若要成组地移动一组文件,例如移动整个文件夹时,该文件夹内所有文件保持彼此间的相对路径不变,此时不需要更新这些文件间的文档相对链接。但是,当移动含有文档相对链接的单个文件或者移动文档相对链接所连接到的单个文件时,则必须更新这些链接。

本地链接和服务器链接

由于HTML网页是被传递到客户端计算机上运行,所以要特别注意链接路径。因为既可以链接到客户端计算机上的资源,也可以连接到网络服务器上的资源。例如,当位于服务器上的某个网页想链接到服务器上的另一个资源,假设该资源是 c:/test/root/form.html,位于服务器上。那么可以这样定义链接:

  1. <span style="font-size:14px;">    <a href="协议名://主机名/form.html">绝对地址链接到form</a>
  2. <a href="相对路径/form.html">相对地址链接到form</a></span>

而不能这样:

  1. <span style="font-size:14px;"><a href="file://c:/test/root/form.html">链接到form</a></span>

当该网站的访问者单击该链接时,浏览器将尝试访问其各自计算机上的file://c:/test/root/form.html,通常会看到错误消息。这样做实际是将链接指向本地计算机上的一个文件,而不是服务器上的一个文件,因为最终被传送到本地计算机上运行。

综上,在传统Web开发中一共有四种路径表示方式(下面以图片路径为例):

  • 直接以URL表示,如:
  1. <span style="font-size:14px;"><img src="http://</span><a target="_blank" href="http://www.Test.com/images/cat.jpg'/"><span style="font-size:14px;">www.Test.com/images/cat.jpg"/</span></a><span style="font-size:14px;">></span>
  • 以相对于当前网页的形式表示,如:
  1. <span style="font-size:14px;"><img src="data:images/cat.jpg"/>
  2. </span>
  • 以相对于网站根路径的方式表示,用于客户端,如:
  1. <span style="font-size:14px;"><img src="/images/cat.jpg"/>
  2. </span>
  • 以当前页面路径对等的路径形式表示,如:
  1. <span style="font-size:14px;"><img src="../images/cat.jpg"/>
  2. </span>

在ASP.NET中还有一种只能用于服务器控件上或者服务器代码里的表示形式,那就是“~”路径表示符,它的功能是无论页面位于网站中的什么位置,都将从位于 Web 应用程序根目录下的 images 文件夹中直接读取图像文件。如:

    1. <span style="font-size:14px;"><asp:Image ID="Image1" runat="server" ImageUrl="~/images/cat.jpg" /></span>

ASP.NET路径解惑的更多相关文章

  1. ASP.net 路径问题 详解

    各位有没有碰到在日常工作中经常在路径设置的时候把 "~/ ../ .../ . / .http://www.cnblogs.com/"这些符号搞混搞乱了?偶尔还会因路径的问题郁闷了 ...

  2. asp.net路径问题

    -------------初级篇---------------------------------------- 在一般的href中路径的引用问题   ./index.aspx与index.aspx都 ...

  3. ASP.NET SessionState 解惑

    踩坑 近日在对一个ASP.NET WEBFORM项目进行调优过程中,偶然发现页面POSTBACK事件是串行处理的,甚至不同页面的请求都是串行处理的(一个页面加载完毕后,才开始加载第二个页面).但是网站 ...

  4. asp.net绝对与相对路径

    对于asp.net 路径的问题,闲心有很多人和我一样,只是知道一点,理解并不深刻.下面我就来整理一下相路径和绝对路径的知识. 绝对路径: 每个网页都有一个唯一的地址,它就是该网页的绝对路径.绝对路径提 ...

  5. Fckeditor PHP/ASP File Upload Vul

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 FCKeditor是目前最优秀的可见即可得网页编辑器之一,它采用JavaScrip ...

  6. 当你的IIS需要运行ASP网站时,需要这样配置下你的IIS

    1.进入Windows 7的 控制面板->程序和功能->选择左上角的 打开或关闭Windows功能 2.现在出现了安装Windows功能的选项菜单,注意选择的项目,红色箭头所示的地方都要选 ...

  7. 64位Win7下运行ASP+Access网站的方法

    64位Win7下运行ASP+Access网站的方法 近日系统升级为WIN7 64位之后,突然发现原本运行正常的ASP+ACCESS网站无法正常连接数据库. 网上搜索多次,终于解决了问题,总结了几条经验 ...

  8. IIS7.5 asp+access数据库连接失败处理 64位系统

    IIS7.5 asp+access数据库连接失败处理(SRV 2008R2 x64/win7 x64) IIS7.5不支持oledb4.0驱动?把IIS运行模式设置成32位就可以了,微软没有支持出64 ...

  9. Win7/Win8/IIS7/IIS8配置ASP/ACCESS

    1.在IIS信息服务管理器配置好站点后,配置ASP属性: a.IIS启用ASP 1.打开控制面板>>程序和功能>>“打开或关闭windows功能”,见下图 2.稍等片刻,出现一 ...

随机推荐

  1. HTTP 与 HTTPS

    https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密. 防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名. 另外是加密,加密需要一个密钥交换算法,双方 ...

  2. JSP中 input type 用法

    JSP中 input type 用法 Input表示Form表单中的一种输入对象,其又随Type类型的不同而分文本输入框,密码输入框,单选/复选框,提交/重置按钮等,下面一一介绍. 1,type=te ...

  3. JS的解析与执行过程—全局预处理阶段之命名冲突的处理策略

    有如下代码: <body> <script> alert(f); function f() { console.log("fff"); } var f = ...

  4. 实现人脸识别性别之路---try语句的使用

    Try语句 用法:处理异常信息 存在的形式:try-except X-except T...-except-else-finally(其中X T为错误的类型) 表达意思:try语句是执行正常语句,如果 ...

  5. 安装成功的nginx,如何添加未编译安装模块(非覆盖安装http_image_filter_module)

    背景:1.做了图片上传小项目.2.图片上传,需要多图管理.3.图片上传,需要存储到Fastdfs.4.Fastdfs上的图片,和Nginx结合.5.Nginx从Fastdfs获得的图片,需要使用缩略图 ...

  6. 构建基于Javascript的移动CMS——加入滑动

    在和几个有兴趣做移动CMS的小伙伴讨论了一番之后,我们认为当前比較重要的便是统一一下RESTful API.然而近期持续断网中,又遭遇了一次停电,暂停了对API的思考.在周末无聊的时光了看了<人 ...

  7. android中9-patch图片的使用

    看了非常多文章的介绍,9.png图片有两种区域:可扩展区和内容显示区. 弄了半天才明确什么叫做可扩展区,什么叫做内容显示区. 分享一下自己的理解. 下图是某博客的截图: 图片来自:http://blo ...

  8. solr 亿万级数据查询性能測试

    废话不多说,我电脑配置 i7四核cpu 8G内存 插入数据文档中有5个字段,当中有两个分词.一个int,一个date 批量插入測试一次10万循环10次总共100万用时85秒 批量插入測试一次10万循环 ...

  9. 2017国家集训队作业[agc014d]Black and White Tree

    2017国家集训队作业[agc014d]Black and White Tree 题意: ​ 有一颗n个点的树,刚开始每个点都没有颜色.Alice和Bob会轮流对这棵树的一个点涂色,Alice涂白,B ...

  10. docker的数据持久化

    挂载宿主机的目录(实现很多容器共用一个宿主卷) [root@localhost ~]# docker run -itd --name web01 -v /var/www/html:/var/www/h ...