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");
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");
相关文章推荐
- JAVA WEB 开发中路径问题的总结
- web开发过程中关于路径问题的总结
- java web开发路径问题总结
- Web开发中的路径问题总结
- Web开发问题总结
- TEC1701.WebADI开发技术总结 - 第六章 Web ADI开发常见问题(6/6)
- java(Web)中相对路径,绝对路径问题总结
- JAVA Web开发过程中的路径问题
- EAS的WAF2开发中WEB方案对应的表结构及问题分析解决总结
- java(Web)中相对路径,绝对路径问题总结
- java(Web)中相对路径,绝对路径问题总结
- JavaWeb路径问题打包总结--小心出门右转404
- WEB-INF 有关的目录路径问题总结
- java(Web)中相对路径,绝对路径问题总结
- java(Web)中相对路径,绝对路径问题总结
- Web开发_问题解决(3)之linux服务器上获取路径问题||jsp页面报错问题
- Java Web开发中路径问题小结
- Java Web开发中路径问题的总结
- WEB开发中路径的问题
- Java Web开发之访问路径问题分析