ASP.net 路径问题 详解
各位有没有碰到在日常工作中经常在路径设置的时候把 “~/ 、./ 、../ 、 / 、http://www.cnblogs.com/“这些符号搞混搞乱了?偶尔还会因路径的问题郁闷了半天 还以为是程序上出了问题了。以下我是转自–脚本之家 里的一篇技文,略作修改,以备不时只需,各位有需要的也可参考参考,有错的也请各位指出。
比如你的工程是Webapplication1(url是:http://localhost/webapplication1/webform1.aspx)
Request.ApplicationPath 就是/Webapplication1
如果是站点就直接返回”/”;
~/ 可以用在需要设置路径的控件比如:imagebutton,image等 以及链接ascx文件,配置文件.
../ 的好处是可以不知道文件夹的名字知道层次结构就可以了
/ 的好处是针对根路径,如果本地目录和服务器目录一致,那直接用/就可以保证路径正确,这种情况很少.
Request.ApplicationPath 注意如果没有虚拟目录就直接返回/,那你程序里面就不要设置/
比如
Request.ApplicationPath+”/images/a.gif” 如果是站点 就是等于 “//images/a.gif”,错误的
如果有虚拟目录就是 “Webapplication1/images/a.gif”
没有/的
Request.ApplicationPath 发挥虚拟目录名称,如果是站点就返回/
~/ 类似,不过只用服务端的空间可以识别;
/ 针对目录
./ 当前目录
../ 相对当前目录的上层目录
比如你的工程是Webapplication1(url是:http://localhost/webapplication1/webform1.aspx)
Request.ApplicationPath 就是Webapplication1/
~/ 也是 Webapplication1/
/就是http://localhost/
如果webform1.aspx 下有个文件webform2.aspx
你可以在webform1.aspx里这样使用
ddd
或者
或者
ASP.NET 网站路径
使用网站中的资源时,通常必须指定资源的路径。例如,您可以使用 URL 路径引用页面中的图像文件或网站中其他位置处的页面的 URL。同样,Web 应用程序中的代码可以使用基于服务器的文件的物理文件路径对文件进行读写操作。ASP.NET 提供用于引用资源并确定应用程序中的页面或其他资源的路径的方法。
指定资源的路径
许多情况下,页面中的元素或控件必须引用外部资源,如文件。ASP.NET 支持引用外部资源的各种方法。根据您使用的是客户端元素还是 Web 服务器控件,选择的引用方法将有所不同。
客户端元素
客户端元素是页面上的非 Web 服务器控件元素,它们将按原样被传递给浏览器。因此,从客户端元素中引用资源时,应根据 HTML 中 URL 的标准规则构造路径。可以使用完全限定的 URL 路径(又称为绝对 URL 路径),也可以使用各种类型的相对路径。例如,如果页面包含 img 元素,则可以使用以下路径之一设置其 src 属性:
绝对 URL 路径。如果引用其他位置(例如外部网站)中的资源,则绝对 URL 路径非常有用。
网站根目录相对路径,此路径将根据网站根目录(而非应用程序根目录)进行解析。如果将跨应用程序的资源(例如图像或客户端脚本文件)保留在网站根目录下的文件夹中,则网站根目录相对路径非常有用。
此示例路径假定 Images 文件夹位于网站根目录下。
如果您的网站为 http://www.contoso.com,则此路径将解析为以下形式。
http://www.contoso.com/Images/SampleImage.jpg下面是一个根据当前页面路径解析的相对路径。
解析为当前页面路径对等的相对路径。
注意
默认情况下,浏览器使用当前页面的 URL 作为解析相对路径的基准。但是,您可以在页面中包含 HTML base 元素,以指定替代基路径。
服务器控件
在引用资源的 ASP.NET 服务器控件中,可以使用绝对路径或相对路径,这一点与客户端元素一样。如果使用相对路径,则相对于页面、用户控件或包含该控件的主题的路径进行解析。例如,假设 Controls 文件夹中包含一个用户控件。该用户控件包含一个 Image Web 服务器控件,此服务器控件的 ImageUrl 属性被设置为以下路径:Images/SampleImage.jpg。
当该用户控件运行时,上述路径将解析为以下形式:/Controls/Images/SampleImage.jpg。无论承载该用户控件的页面位于何处,结果都是如此。
注意
在主控页中,资源的路径基于内容页的路径进行解析。有关更多信息,请参见 ASP.NET 母版页概述。
服务器控件中的绝对和相对路径引用具有以下缺点:
绝对路径在应用程序之间是不可移植的。如果移动绝对路径指向的应用程序,则链接将会中断。
如果将资源或页面移动到不同的文件夹,可能很难维护采用客户端元素样式的相对路径。
为克服这些缺点,ASP.NET 包括了 Web 应用程序根目录运算符 (~),当您在服务器控件中指定路径时可以使用该运算符。ASP.NET 会将 ~ 运算符解析为当前应用程序的根目录。可以结合使用 ~ 运算符和文件夹来指定基于当前根目录的路径。
下面的示例演示了使用 Image 服务器控件时用于为图像指定根目录相对路径的 ~ 运算符。在此示例中,无论页面位于网站中的什么位置,都将从位于 Web 应用程序根目录下的 Images 文件夹中直接读取图像文件。
ASP.net 路径问题 详解的更多相关文章
- ASP.NET 运行时详解 揭开请求过程神秘面纱
对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就 ...
- 如何利用IIS调试ASP.NET网站程序详解
如何利用IIS调试ASP.NET网站程序详解 更新时间:2019年01月13日 08:44:13 作者:江湖逍遥 我要评论 这篇文章主要给大家介绍了关于如何利用IIS调试ASP.NET网 ...
- ASP.NET 操作Cookie详解 增加,修改,删除
ASP.NET 操作Cookie详解 增加,修改,删除 Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它 ...
- ASP.NET运行时详解 集成模式和经典模式
遗留问题 在<ASP.NET运行时详解 生命周期入口分析>中遗留两个问题,包括Application的InitInternal方法执行细节.IIS6和II7经典模式请求管道管理类Appli ...
- ASP.NET生命周期详解
最近一直在学习ASP.NET MVC的生命周期,发现ASP.NET MVC是建立在ASP.NET Framework基础之上的,所以原来对于ASP.NET WebForm中的很多处理流程,如管道事件等 ...
- ASP.NET生命周期详解 [转]
最近一直在学习ASP.NET MVC的生命周期,发现ASP.NET MVC是建立在ASP.NET Framework基础之上的,所以原来对于ASP.NET WebForm中的很多处理流程,如管道事件等 ...
- ASP.NET生命周期详解(转)
看到好文章需要分享. 最近一直在学习ASP.NET MVC的生命周期,发现ASP.NET MVC是建立在ASP.NET Framework基础之上的,所以原来对于ASP.NET WebForm中的很多 ...
- asp.net MVC ViewData详解
转自:http://www.cnblogs.com/gaopin/archive/2012/11/13/2767515.html 控制器向视图中传值ViewData详解 1.将一个字符串传值到视图中 ...
- ASP.NET性能监视参数详解
性能监视器- Performance Monitor 性能监视器是Windows自带的系统资源和性能监视工具. 性能监视器能够量化地提供CPU使用率, 内存分配状况, 异常派发情况, 线程调度频率等信 ...
随机推荐
- 【Peaks加强版 BZOJ 3551】你被坑了吗?
这道在没加读入优化时间在20s左右的题终于在大米饼两天的死缠烂打.鬼混.乱整乱撞后艰难地AC了.但惋惜的是,大米饼一号代码其实更加简洁,但至今找不出BUG,我将它放在下面,也许有一天从远方来的另一个大 ...
- python 二维数组遍历
import numpy as np world=np.zero([5,5]) for i in range(0,world.shape[0]) for j in range(0,world.shap ...
- Spring boot结合Maven实现不同环境的配置
配置文件层次: pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...
- 性能优化之mysql优化——慢查日志的开启方式和存储
-- MySQL优化 -- mysql 慢查日志的开启方式和存储 -- 1) 查看mysql是否开启慢查询日志 SHOW VARIABLES LIKE 'slow_query_log'; -- 2) ...
- 获得只有 [年 月 日] 的Date 对象
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String sDate = sim ...
- json转化为对象数组
1.ascx传值给aspx aspx页面 <%@ Page Title="" Language="C#" MasterPageFile="~/_ ...
- struts2中action的class属性值意义
整合了spring就不同了,orz struts2单独使用时action由struts2自己负责创建:与spring集成时,action实例由spring负责创建(依赖注入).这导致在两种情况下str ...
- aways on 配置部署(一)——准备工作
sqlserver的aways on 配置需要经历三个步骤,前面两个步骤是对aways on 配置的一个准备步骤. 经过了一个星期的研究,终于成功的完成了前两个步骤,期间参考了很多的资料和博客,总感觉 ...
- electron应用以管理员权限启动
最近在用electron开发PC桌面应用,其中有个需求就是整个应用以管理员权限启动.很头痛,各种google,baidu. 最后终于解决了,可以分为三个步骤,做个总结分享. 一.如果没有manifes ...
- go优化
1.安装graphviz软件,安装步骤如下::(1)安装graphvizyum install 'graphviz*' (2)查看已安装graphviz包yum list 'graphviz*' 2. ...