ASP.NET 网站路径

news/2024/5/12 17:45:40/文章来源:https://blog.csdn.net/JOHNCOOLS/article/details/1253729

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

指定资源的路径

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

客户端元素

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

  • 绝对 URL 路径:

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

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

  • 站点根目录相对路径,根据站点(不是应用程序)根目录进行解析。此示例路径假定 Images 文件夹存在于网站根目录下:

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

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

    http://www.contoso.com/Images/SampleImage.jpg

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

  • 根据当前页面路径解析的相对路径:

    <img src="Images/SampleImage.jpg" />
  • 解析为当前页面路径对等的相对路径。

    <img src="../Images/SampleImage.jpg" />
    Note注意

    默认情况下,浏览器使用当前页面的 URL 作为基准解析相对路径。但是,您可以在页面中包含 HTML base 元素,以指定替代基路径。

服务器控件

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

Images/SampleImage.jpg

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

/Controls/Images/SampleImage.jpg

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

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

  • 绝对路径在应用程序之间是不可移植的。如果移动绝对路径指向的应用程序,则链接将会中断。

  • 如果将资源或页面移动到不同的文件夹,可能很难维护采用客户端元素样式的相对路径。

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

<asp:image runat="server" id="Image1"
ImageUrl="~/Images/SampleImage.jpg" />

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

Note注意

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

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

Note注意

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

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

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

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

Note注意

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

根据请求属性确定路径

下表列出了 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

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

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("~");
Note注意

传递给 MapPath 方法的路径必须为应用程序相对路径,而不是绝对路径。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_838627.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SEO之sitemap.xml

Sitemap 简介&#xff1a;Sitemap 即网站地图一般有两种&#xff0c;一种是给用户看的 &#xff0c;主要格式为HTML&#xff0c;主要是呈现网站各个栏目的分布&#xff0c;这里不做讨论。 而对于SEOer 来说&#xff0c;要关注的是给搜索引擎看的网站地图 。Sitemap&#xff08;…

SiteMap Maker v1.01 网站地图生成器

主要特点介绍&#xff1a; 很多人的网站在Google&#xff0c;百度&#xff0c;雅虎等各大搜索引擎收录非常少&#xff0c;而且长期收录不增长或者增长很慢。 这主要是因为&#xff0c;搜索引擎没有足够的信息爬行到这个网站的每一个页面。这大大影响了搜索引擎为网站带来…

We7荣获“政府网站群建设最佳产品奖”

8月23日&#xff0c;由中国信息化推进联盟、中国计算机行业协会、中国计算机报社等国家信息化领域权威机构和权威媒体共同组织开展的“第四届中国行业信息化奖项评选活动暨2012中国行业信息化颁奖盛典”在北京国宾酒店隆重举办。来自行业信息化领域的500余位企业代表、政府领导…

ASP.NET网站开发实用代码

网站制作时显示的服务器资料 Environment.TickCount /60000//获取计算机运行时间inttick Environment.TickCount /60000;lblTic.Text (tick /60).ToString() "小时 "(tick %60).ToString() "分钟";intrem Convert.ToInt32(Environment.WorkingSet) /1024; …

网站进度条完美解决方案

对网站的进度条感兴趣开始于使用360安全卫土时&#xff01;由于这个软件的绿色进度条&#xff0c;我感觉这个软件很新奇、很神秘、技术含量很技高、细节性东西做得不错&#xff0c;用四个字来概括就是“焕然一新”。其实没使用这个软件之前&#xff0c;我觉得这东西并没不是那么…

生成网站缩略图代码(C#)

这几天博客园都在讨论这个&#xff0c;看了How to take screenshot (thumbnail) of a web site with ASP.NET 2.0?&#xff0c;根据VB.NET代码&#xff0c;搞出来一个C#版本的&#xff0c;看看效果还不错,百度不能正常显示&#xff0c;其他几个大站&#xff08;google,sohu)显…

一个图标搜索网站

http://www.iconlet.com/ 里面的图标很全&#xff0c;你需要的几乎都能找到&#xff0c;并且是 png 的哟&#xff0c;做平面的这下爽啦&#xff01; 贴几张图&#xff0c;馋馋大家&#xff1a; 对于我个人来说&#xff0c;我非常喜欢上面的这种风格…

开发视频网站,asp.net视频文件转换.fla格式

最经公司有一个小项目需要把视频转换成FLASH文件&#xff0c;效果就是像用户注册youku网一样&#xff0c;自己可以视频上传&#xff0c;转换成flash格式播放。 苦于以前没有做过&#xff0c;于是马上搜索了相关的文章&#xff0c;看了 http://www.cnblogs.com/xiucai/ 和 http…

ASP.NET2.0实现网站的自动升级

网站的自动升级主要是要实现从一台服务器上下载某些文件到本服务器上&#xff0c;然后对下载下来的文件进行更新等操作。比如&#xff0c;现在有服务器A,服务器B和客户端C。作为COM公司开发的产品DIV网站系统被安装到服务器B上&#xff0c;而它的更新设置及更新文件则在服务器A…

谈谈wordpress网站固定链接URL如何设置好?

有不少站长不知道wordpress网站固定链接URL如何设置好&#xff0c;今天福利吧就来仔细给你分析一下。很多人已经都知道了wordpress默认的网址形式是带问号的&#xff0c;这种网址对SEO 来说很不好&#xff0c;是动态的网址&#xff0c;影响搜索引擎的排名和收录。 那么wordpres…

【seo】网页开发 代码优化 1

URL要静态&#xff0c;不能是动态或者伪静态。网站图片 img标签添加alt和title属性。 Title“这张图片的内容”&#xff0c;比如这是一张人物图片&#xff0c;那么就是title“人物名” Alt “XXX-建中集团”&#xff0c;这里的XXX指人、物名或栏目名。例子同上alt“人物名-建…

【seo】网页开发 代码优化 2

超链接<a> 目前<a>标签隐藏在CSS里&#xff0c;不能被搜索引擎抓取&#xff0c;应直接放在前端<div>代码中&#xff0c;不要放在样式里&#xff0c;也不要用任何方式隐藏。 参考案例&#xff1a;百度百科 CSS CSS放在统一的样式文件中&#xff0c;需要使用的…

【seo】网页开发 代码优化 3

TDK A.首页 title:中商碳素研究院-铝及铝用碳素企业探索者 Keywords:中商碳素研究院&#xff0c;碳素&#xff0c;铝用碳素&#xff0c;有色金属 Description&#xff1a;中商碳素研究院总部位于上海&#xff0c;是有色金属、铝及铝用碳素行业国内首家互联网科技、工业、贸易…

【seo】网站优化工具 - 5118 入门教程

网站工具&#xff1a; https://www.5118.com/ 1、 打开官网 2、安装浏览器插件 3、开始SEO的工作

盘点:144个免费学习网站,全网最全资源合集

亲测整理144个免费学习网站&#xff0c;强烈推荐其中44个&#xff0c;正文多图预警。 先看目录&#xff1a; 一、国内MOOC类网站&#xff08;多综合类&#xff09; 小科普&#xff1a;MOOC&#xff08;massive open online courses&#xff09;&#xff0c;即大型开放式网络课…

大型网站之分布式会话管理

为什么80%的码农都做不了架构师&#xff1f;>>> 随着网站的功能和用户越来越多&#xff0c;单机器服务部署的Web应用已经不能再支持了。这时候就需要优化或调整目前的架构&#xff0c;具体怎么优化&#xff0c;或先优化哪部分&#xff0c;这取决于网站的具体情况&a…

15个优秀的PHP免费在线学习网站

PHP是一种功能强大的服务器端脚本语言&#xff0c;旨在帮助Web开发人员快速开发动态页面。 本文为您介绍15个优秀的PHP免费在线学习网站&#xff0c;希望对您学习PHP有所帮助。 01. The official PHP website – PHP Manual 02. W3 Schools PHP Tutorial 03. Tizag.co…

图文解说Win7系统机器上发布C#+ASP.NET网站

1. 概述 在一台干净的Win7机器上发布ASP.NET网站需要准备的有&#xff1a; a) .NET Framework 环境 b) 数据库 c) IIS 互联网信息服务 d) 待发布的网站代码 其中.NETFramework环境一般安装了VS2008 或者VS2010都会自带&#xff0c;也可以下载独…

子目录下的文件如何include网站根目录下的文件

2019独角兽企业重金招聘Python工程师标准>>> ###问题 目录./aaa/bbb/ccc下的index.php需include网站根目录下的conn.php。 解答思路 ###问题归结于如何获取网站的根目录。 $dir $_SERVER[DOCUMENT_ROOT]; //获取到网站的根目录 include($dir.conn.php); //成功将根…