您的位置:首页 > 其它

Web开发中的路径问题总结

2009-10-13 20:14 309 查看
转自:
http://www.cnblogs.com/unused/archive/2008/09/21/1295469.html
(
参考MSDN)

几个符号的含义:

'/'
代表网站根目录:"/Images/SampleImage.jpg"
相当于".../inetpub/wwwroot/image/SampleImage.jpg"

'~'
代表应用程序根目录,~
运算符只能为服务器控件识别,
并且位于服务器代码中.
不能将 ~
运算符用于客户端元素.

'..'
代表上一级目录:"/bbs/Images/SampleImage.jpg"
相当于"/bbs/../bbs/Images/SampleImage.jpg"

'.'
代表当前目录:"/bbs/Images/SampleImage.jpg"
相当于"/bbs/Images/./././SampleImage.jpg"

以img
元素为例:

(*)
绝对 URL
路径.
如果引用其他位置(
例如外部网站)
中的资源,
则绝对 URL
路径非常有用.

<img src="
http://www.example.com/MyApplication/Images/SampleImage.jpg
" />

(*)
网站根目录相对路径,
此路径将根据网站根目录(
而非应用程序根目录)
进行解析.
如果将跨应用程序的资源(
例如图像或客户端脚本文件)
保留在网站根目录下的文件夹中,
则网站根目录相对路径非常有用.

一个网站的根目录是/wwwroot/,
其下还可能有许多的应用程序,
如bbs,
此时该应用程序的根目录就是/bbs/.

此示例路径假定 Images
文件夹位于网站根目录下.

而且<img
src="/Images/SampleImage.jpg" />

如果网站为 http://www.example.com/
,
则此路径将解析为以下形式.http://www.example.com/Images/SampleImage.jpg

如果Images
文件夹在某个应用程序目录中如bbs,
那么解析还是 http://www.example.com/Images/SampleImage.jpg
.

很明显网站根目录下没有image
目录,
文件找不到.
此时改为:

<img src="/bbs/Images/SampleImage.jpg" />
就行了!!!!!!!!!!

(*)
下面是一个根据当前页面路径解析的相对路径.

<img src="Images/SampleImage.jpg" />

默认情况下,
浏览器使用当前页面的
URL (
应用程序根目录)
作为解析相对路径的基准.
但是,
可以在页面中包含 HTML base
元素,
以指定替代基路径.

确定当前网站的物理文件路径:

根据请求属性确定路径

下面的是HttpRequest
对象的属性,
这些属性帮助确定应用程序中的资源的路径.

已使用以下 URL
发出浏览器请求: http://www.example.com/MyApplication/MyPages/Default.aspx
.

网站根目录的物理路径为:C:/inetpub/wwwroot/MyApplication/.

该物理路径中包含一个名为 MyPages
的文件夹.

ApplicationPath

获取当前应用程序的根目录路径,
无论在该应用程序中的什么位置请求该路径.
在此示例中,
该属性将返回以下内容:/

CurrentExecutionFilePath

获取当前请求的虚拟路径.
它与
FilePath
属性的不同之处在于,
如果请求已在服务器代码中被重定向,
则 CurrentExecutionFilePath
就是正确的.
在此示例中,
该属性将返回以下内容:/MyApplication/MyPages/Default.aspx

如果作为对 Transfer

Execute
进行调用的结果,
获取正在运行的代码中的属性,
则路径将反映该代码的位置.

FilePath

获取当前请求的虚拟路径.
在此示例中,
该属性将返回以下内容:/MyApplication/MyPages/Default.aspx

与 CurrentExecutionFilePath
属性不同的是,FilePath
不反映服务器端的传输.

Path

获取当前请求的虚拟路径.
在此示例中,
该属性将返回以下内容:/MyApplication/MyPages/default.aspx

PhysicalApplicationPath

获取当前正在执行的应用程序的根目录的物理文件系统路径.
在此示例中,
该属性将返回以下内容:C:/inetpub/wwwroot/

PhysicalPath

获取与请求的 URL
相对应的物理文件系统路径.
在此示例中,
该属性将返回以下内容:C:/inetpub/wwwroot/MyApplication/MyPages/default.aspx

使用 MapPath
方法

MapPath
方法返回传递给该方法的虚拟路径的完整物理路径.
例如,
以下代码返回网站根目录的文件路径:

String rootPath = Server.MapPath("~");

String rootPath = Server.MapPath("~/dir");

String rootPath = Server.MapPath("~/dir/file.ext");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: