ASP.NET Web Pages - 文件夹
本章介绍文件夹和文件夹路径。
在本章中,您将学到:
- 逻辑和物理文件夹结构
- 虚拟和物理名称
- web url 和路径
逻辑文件夹结构
下面是 asp.net 网页的典型文件夹结构:
- "account" 文件夹包含登录和安全文件
- "app_data" 文件包含和数据文件
- "images" 文件夹包含图片
- "scripts" 文件夹包含脚本
- "shared" 文件夹包含通用文件(比如布局和样式文件)
物理文件结构
上面这个网站的 "images" 文件夹的物理结构在计算机上类似这样:
c:\johnny\documents\mywebsites\demo\images
虚拟和物理名称
根据上面的例子:
web 图片的虚拟名称类似这样:"images/pic31.jpg"。
但是物理名称类似这样 "c:\johnny\documents\mywebsites\demo\images\pic31.jpg"。
url 和路径
url 用于从 web 访问文件:
https://www.w3school.com.cn/html5/html5_intro.asp
url 在服务器上对应的文件是:
c:\mywebsites\htm5\html5_intro.asp
虚拟路径是代表物理路径的简写形式。如果您使用虚拟路径,就能够在不更新路径的情况下将网页移动到不同的域名(或服务器)。
url https://www.w3school.com.cn/html/html5_intro.asp 服务器名 w3school 虚拟路径 /html/html5_intro.asp 物理路径 c:\mywebsites\w3school\/html/html5_intro.asp
磁盘驱动器上的根目录写作: c:\,但是网站上的根目录是 /(斜杠)。
web 文件夹的虚拟路径(几乎)永远不会与物理文件夹相同。
在您的代码中,根据代码内容的不同,可能会同时引用物理路径和虚拟路径。
asp.net 提供三种处理文件夹路径的工具:~ 操作符、server.mappath 方法以及 href 方法。
~ 操作符
如需在代码中规定虚拟根目录,请使用 ~ 操作符。
如果您使用 ~ 操作符,而不是路径,就能够在不改变任何代码的情况下,将网站移动到不同的文件夹或位置:
var myimagesfolder = "~/images"; var mystylesheet = "~/styles/stylesheet.css";
server.mappath 方法
server.mappath 方法将虚拟路径 (/default.cshtml) 转换为服务器能够理解的物理路径 (c:\johnny\mywebsited\demo\default.cshtml)。
当需要打开位于服务器上的数据文件时,您就会用到该方法(数据文件只能通过完整的物理路径来访问):
var pathname = "~/datafile.txt"; var filename = server.mappath(pathname);
在本教程的下一章中,您将学习更多有关在服务器上读取和写入数据文件的知识。
href 方法
href 方法把代码中的路径转换为浏览器能够理解的路径(浏览器无法理解 ~ 操作符)。
您使用 href 方法来创建指向资源(比如图片和 css 文件)的路径。
您会经常在 html <a>、<img> 以及 <link> 元素中用到该方法:
@{var mystylesheet = "~/shared/site.css";} <!-- 创建指向 css 文件的链接 --> <link rel="stylesheet" type="text/css" href="@href(mystylesheet)" /> <!-- 同上 : --> <link rel="stylesheet" type="text/css" href="/shared/site.css" />
href 方法属于 webpage 对象的方法。
推荐阅读
-
Asp.Net程序目录下文件夹或文件操作导致Session失效的解决方案
-
ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试
-
Asp.Net Core 学习教程1、初始.Net Core与VS Code 第一个web程序
-
C# asp.net mvc 通过 HttpClient 访问 Web_API
-
asp.net 获取指定文件夹下所有子目录及文件(树形)
-
Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
-
通过扩展让ASP.NET Web API支持JSONP
-
http响应Last-Modified和ETag以及asp.net web api实现
-
或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧
-
【Web API系列教程】2.2 — ASP.NET Web API中的路由和动作选择机制