ASP.NET 网站路径

asp.net

使用网站中的资源时,通常必须指定资源的路径。例如,您可以使用 URL 路径引用页面中的图像文件或网站中其他位置处的页面的 URL。同样,Web 应用程序中的代码可以使用基于服务器的文件的物理文件路径对文件进行读写操作。ASP.NET 提供用于引用资源并确定应用程序中的页面或其他资源的路径的方法。

指定资源的路径

许多情况下,页面中的元素或控件必须引用外部资源,如文件。ASP.NET 允许您通过各种方法引用外部资源。所选方法取决于使用客户端元素还是服务器控件。

客户端元素

元素(不是页面中的服务器控件,而是客户端元素)以原样传递给浏览器。因此,从客户端元素中引用资源时,应根据 HTML 中 URL 的标准规则构造路径。可以使用完全限定(绝对)URL 路径,也可以使用各种类型的相对路径。例如,如果页面包含一个 img 标记,则可以使用以下路径之一设置其 src 属性:

  • 绝对 URL 路径:

    <img src="http://www.contoso.com/MyApplicationhttp://www.pushad.com/http://www.pushad.com/Info/Images/SampleImage.jpg" />

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

  • 站点根目录相对路径,根据站点(不是应用程序)根目录进行解析。此示例路径假定 Images 文件夹存在于网站根目录下:
    <img src="http://www.pushad.com/http://www.pushad.com/Info/Images/SampleImage.jpg" />

    如果您的网站为 http://www.contoso.com,则路径将解析为以下形式:

    http://www.contoso.comhttp://www.pushad.com/http://www.pushad.com/Info/Images/SampleImage.jpg

    如果将跨应用程序的资源(如图像或客户端脚本文件)保留在网站根目录下的文件夹中,则站点根目录相对路径非常有用。

  • 根据当前页面路径解析的相对路径:
    <img src="http://www.pushad.com/Info/Images/SampleImage.jpg" />
  • 解析为当前页面路径对等的相对路径。
    <img src="..http://www.pushad.com/http://www.pushad.com/Info/Images/SampleImage.jpg" />
    注意
    默认情况下,浏览器使用当前页面的 URL 作为基准解析相对路径。但是,您可以在页面中包含 HTML base 元素,以指定替代基路径。

服务器控件

在引用资源的 ASP.NET 服务器控件中,可以使用绝对路径或相对路径,这一点与客户端元素一样。如果使用相对路径,则相对于页面、用户控件或包含该控件的主题的路径进行解析。例如,假设 Controls 文件夹中包含一个用户控件。该用户控件包含一个 Image Web 服务器控件,该服务器控件的 ImageUrl 属性设置为以下路径:

http://www.pushad.com/Info/Images/SampleImage.jpg

该用户控件运行时,路径将解析为以下形式:

/Controlshttp://www.pushad.com/http://www.pushad.com/Info/Images/SampleImage.jpg

无论承载用户控件的页面位置如何,都是如此。

服务器控件中的绝对和相对路径引用具有以下缺点:

  • 绝对路径在应用程序之间是不可移植的。如果移动绝对路径指向的应用程序,则链接将会中断。
  • 如果将资源或页面移动到不同的文件夹,可能很难维护采用客户端元素样式的相对路径。

为克服这些缺点,ASP.NET 启用了 Web 应用程序根目录运算符 (~),在服务器控件中指定路径时,可以使用该运算符。ASP.NET 会将 ~ 运算符解析为当前应用程序的根目录。可以结合使用 ~ 运算符和文件夹来指定基于当前根目录的路径。下面的示例演示使用 Image 服务器控件时用于指定图像的根目录相对路径的 ~ 运算符:

<asp:image runat="server" id="Image1"ImageUrl="~http://www.pushad.com/http://www.pushad.com/Info/Images/SampleImage.jpg" />

在该示例中,图像文件将从 Web 应用程序根目录下的 Images 文件夹中直接读取,无论该页面位于网站的什么位置。

注意
~ 运算符只能为服务器控件识别,并且位于服务器代码中。不能将 ~ 运算符用于客户端元素。

可以在服务器控件中的任何与路径有关的属性中使用 ~ 运算符。

注意
在主控页中,资源的路径基于内容页的路径进行解析。有关更多信息,请参见 ASP.NET 母版页概述。

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

在应用程序中,您可能需要确定服务器上的文件或其他资源的路径。例如,如果应用程序以编程方式对文本文件进行读写操作,则必须为用于读取和写入的方法提供该文件的完整物理路径。

将物理文件路径(如 C:\Website\MyApplication)硬编码到应用程序中并不是很好的做法,因为如果移动或部署应用程序,则路径会发生更改。但是,ASP.NET 为您提供了以编程方式获取应用程序中的任何物理文件路径的方法。然后,您可以使用基文件路径创建所需资源的完整路径。用于确定文件路径的两种最常用的 ASP.NET 功能是返回路径信息的 HttpRequest 对象的属性,以及 MapPath 方法。

注意
不应将物理文件路径发送到客户端,因为它们可能会被恶意用户用来获取有关您的应用程序的信息。

根据请求属性确定路径

下表列出了 HttpRequest 对象的属性,这些属性帮助您确定应用程序中的资源的路径。

下面的示例假定使用以下 URL 来发出浏览器请求:

http://www.contoso.com/MyApplication/MyPages/Default.aspx

对于这些示例,术语“虚拟路径”是指跟在服务器标识符后面的请求 URL 的一部分,此时虚拟路径如下所示:

/MyApplication/MyPages/Default.aspx

此外,这些示例假定网站根目录的物理路径为以下形式:

C:\inetpub\wwwroot\MyApplication\

最后,这些示例假定物理路径包含一个名为 MyPages 的文件夹。

 

属性 说明
ApplicationPath


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

/

CurrentExecutionFilePath


获取当前请求的虚拟路径。不同于 FilePath,差别在于如果请求已在服务器代码中被重定向,则 CurrentExecutionFilePath 就是正确的。对于此示例,该属性将返回以下内容:

/MyApplication/MyPages/Default.aspx

如果作为对 Transfer 或 Execute 进行调用的结果,您获取正在运行的代码中的属性,则路径将反映该代码的位置。

FilePath


获取当前请求的虚拟路径。对于此示例,该属性将返回以下内容:

/MyApplication/MyPages/Default.aspx

不同于 CurrentExecutionFilePathFilePath 不反映服务器端转换。

Path


获取当前请求的虚拟路径。对于此示例,该属性将返回以下内容:

/MyApplication/MyPages/default.aspx

PhysicalApplicationPath


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

C:\inetpub\wwwroot\

PhysicalPath


获取与请求的 URL 对应的物理文件系统路径。对于此示例,该属性将返回以下内容:

C:\inetpub\wwwroot\MyApplication\MyPages\default.aspx

使用 MapPath 方法

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

Visual Basic 复制代码

Dim rootPath As String = Server.MapPath("~")

C# 复制代码

String rootPath = Server.MapPath("~");
注意
传递给 MapPath 方法的路径必须为应用程序相对路径,而不是绝对路径。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 控件
, 应用程序
, jfinal 路径
, 路径
, 文件路径
, myapplication
, 根目录
, 获取资源文件
, 获取当前请求
, twainkit 路径
, asp.net获取当前url
, 物理路径
示例
,以便于您获取更多的相关知识。

时间: 2024-08-26 10:41:20

ASP.NET 网站路径的相关文章

IIS7下Asp.net网站优化站点性能技巧

首先我们要学一些优化网站性能和体验的理论和基础知识,雅虎已经帮我们总结好了,详见参考链接中的几篇文章,有好心人已经给翻译成中文了. Web服务器的性能优化有很多资料介绍了,多台主机负载均衡,查询结果的多级缓存,数据库索引优化等都是常见的优化手段.随着后端优化空间越来越小,现在越来越多的网站更注重前端性能的优化,就是浏览器,http层面的优化,这里写两点最简单最有效的asp.net网站优化技巧. 了解常见的网站性能优化技巧 首先我们要学一些优化网站性能和体验的理论和基础知识,雅虎已经帮我们总结好了

用Dreamweaver实现ASP动态网站建设

dreamweaver|动态|网站建设 Macromedia Dreamweaver MX 是一款专业的 HTML 编辑器,用于对 Web 站点.Web 页和 Web 应用程序进行设计.编码和开发.无论您愿意享受手工编写 HTML 代码时的驾驭感还是偏爱在可视化编辑环境中工作,Dreamweaver 都会为您提供有用的工具,使您拥有更加完美的 Web 创作体验. Dreamweaver 使您可以使用服务器技术(例如 CFML.ASP.NET.ASP.JSP 和 PHP)生成由动态数据库支持的 W

浅谈从百度百科看网站路径优化

大家好,我是湖南推的kiness.今天小编分享的主题是通过优化网站的路径,提高网站关键字排名的方法.小编将以百度百科为例,从路径的表现形式.路径的分类和如何优化网站路径提升关键字排名这四个方面进行举例分析. 一.路径的表现形式:相对路径和绝对路径.例如百度百科的自然百科的相对路径为:"/ziran/";绝对路径为:"baike.baidu.com/ziran/"(这里省略了http://),也就是说绝对路径的表现形式是"http://+域名+相对路径&qu

ASP\ASP.NET网站中怎么防止Access数据库被别人下载

 如何防止Access数据库下载是一个很老的话题了,网上的讨论也比较多.这里我们给出几种在ASP.NET下防止Access数据库被下载的方法. 我们这里假设Access数据库名字为 test.mdb. 1.把数据库放在WEB目录外 如你的网站目录是D:www,你可以把数据库放到D:data 这个文件夹里,然后修改网站程序中的数据库连接字串地址部分为:"D:datatest.mdb" ,这样数据库可以正常调用,但是无法下载的,因为它不在网站目录里. 假设在web.config中配置数据库

将Asp.Net网站发布到IIS的四种方法

  将Asp.Net网站发布到IIS的四种方法及注意事项: 不管是那种发布方法, 第一件事情是让IIS能够支持asp.net程序, 默认IIS是不开器asp.net网站程序的支持的.在IIS中的"Web服务扩展"中, 确保"ASP.NET v2.0.50727"被启用. 其他的可以保持禁用状态. 发布方法1:---直接复制到IIS目录发布目录中(C:Inetpubwwwroot) a. 将经过VS调试且运行正常的ASP.NET网站项目的文件夹复制到IIS的wwwro

求助一个ASP.NET网站上音频播放的问题

问题描述 求助一个ASP.NET网站上音频播放的问题我想在一个页面上点击一下button就会播放一小段音频(单词发音这类的),但是我找到很多都是直接在前台插入一段OBJECT的代码,求高手指导有没有点击button然后读取数据库中对应的音频路径,然后播放音频的方法,万分感谢! 解决方案 解决方案二:也可用C#去拼接html那段OBJECT代码把相关路径动态填充即可解决方案三:把相关路径动态填充即可这个过程如何操作啊....求指导.

服务器-更新ASP.NET网站时:未预编译文件“XXXX.ASPX”,因此不能请求该文件

问题描述 更新ASP.NET网站时:未预编译文件"XXXX.ASPX",因此不能请求该文件 原网站是把.CS文件预编译成dll,和.aspx文件等预编译成 .compiled文件+一个空的aspx页面(这是个61B的空文件,打开就一句话"这是预编译工具生成的标记文件,不应被删除!"). 好了,介绍好这些后.我源码更新了其中某些页面,包括一些CS文件,用同样的放是编译,挑出了我改动的7个页面的.compiled文件,以及其对应的7个dll.如何对应的呢,是打开.com

VPN 访问asp.net网站问题。急急急.....

问题描述 我有一个asp.net网站,两个简单的页面中有同样的gridview,页面A中用着UpdatePanel局部无刷新.页面B中没有用着无刷新:当我通过VPN访问这两个页面时,页面A中点击分页后,页面就一直不动,通过浏览器开发人员工具截获错误如下:这段代码出错:Sys.ArgumentException:BaseURLdoesnotcontain://.scriptresource.axd?Parametername:baseUrlif(url.charAt(0)==='/'){varsl

如何对ASP.NET网站实现静态化_实用技巧

ASP .NET技术实现的页面的扩展名为 .aspx,aspx是目前非常流行的一种动态网页格式.动态网页的一个特点是信息交互.更新及时,页面文件少,开发速度快.但是它的一个严重问题是在访问量比较大,而服务器的配置和资源比较有限的情况下,每次访问可能都会频繁的处理程序逻辑.读写数据库等等,降低服务器的性能. 工具/原料 asp.net静态化方法一: 重写每个页面需要静态化的动态页面.cs文件的 Render()方法,如下图所示.注意红框处,红框处的参数表示要生成静态页面的名字.该方法实现简单,但是