Web路径专题
在Web开发中,路径是一个非常重要的概念。路径用来定位资源的位置,包括文件、目录、网页等。在本文中,我们将介绍一些与Web路径相关的知识,包括绝对路径和相对路径。
什么是路径?
路径是用来指定资源在计算机文件系统中的位置的字符串。在Web开发中,路径通常用来定位网站上的文件或页面。路径可以分为绝对路径和相对路径两种类型。
一个非常重要的规则:页面所有的相对路径,在默认情况下,都会参考当前浏览器地址栏的路径 http://ip:port/工程名/ + 资源 来进行跳转
绝对路径
绝对路径是从根目录开始的完整路径,包括所有父级目录。例如,http://www.example.com/images/logo.png
是一个绝对路径。绝对路径通常用于指定外部资源的位置,比如引用其他网站上的图片或样式表。
相对路径
相对路径是相对于当前文件位置的路径。相对路径不包括根目录,只包括当前文件所在的目录及其子目录。例如,images/logo.png
是一个相对路径。相对路径通常用于引用同一网站内的资源。
如何使用路径?
在HTML和CSS中,我们经常需要使用路径来引用图片、样式表和脚本文件。以下是一些常见的使用路径的示例:
使用base标签
- base 标签是 HTML 语言中的基准网址标记,它是一个单标签,位于网页头部文件的 head
标签内 - 一个页面最多只能使用一个 base 元素,用来提供一个指定的默认目标,是一种表达路
径和连接网址的标记。 - 常见的 url 路径形式分别有相对路径与绝对路径,如果 base 标签指定了目标,浏览器
将通过这个目标来解析当前文档中的所有相对路径,包括的标签有(a、img、link、form) - 也就是说,浏览器解析时会在路径前加上 base 给的目标,而页面中的相对路径也都转
换成了绝对路径。使用了 base 标签就应带上 href 属性和 target 属性
实例
<html lang="en">
<head>
<meta charset="UTF-8">
<title>b.html</title>
<!-- 解读
1. 如果没有<base href="http://localhost:10000/webpath/">
2. 当点击 返回 a.html 超链接,将会以当前浏览器的地址为路径来确定 路径
3. 如果增加了<base href="http://localhost:10000/hspedu_servlet/">
4. 将以 base 指定的 href 的地址为路径,来确定 超链接的路径
-->
<!--<base href="http://localhost:10000/webpath/">-->
<!--简写形式-->
</head>
<body>
<h1>这是/d1/d2/b.html</h1>
<a>返回 a.html~</a>
</body>
</html>
注意事项
- Web 工程的相对路径和绝对路径
● 相对路径是:
● .表示当前目录
● …表示上一级目录
● 资源名 表示当前目录/资源名
● 绝对路径: http://ip:port/工程路径/资源路径 - 在实际开发中,路径都使用绝对路径,而不是相对路径
- 在 web 中 / 斜杠 如果被浏览器解析,得到的地址是:http://ip[域名]:port/比如: <a
href=“/”>斜杠</a> - 在 web 中 / 斜杠 如果被服务器解析,得到的地址是:http://ip[域名]:port/工程路径/,
你也可以理解成 /工程路径/ 下面的几种情况就是如此:
● <url-pattern>/servelturl</url-pattern>
● servletContext.getRealPath(“/”); ==> 是得到执行路径/工作路径
● request.getRequestDispatcher(“/”); - 在 javaWeb 中 路径最后带 / 和 不带 / 含义不同, 一定要小心,
比如:
<a href=“/a/servlet03”>网址</a> servlet03表示资源
<a href=“/a/servlet03/”>网址</a> : servlet03 表示路径 - 特别说明:重定向 response.sendRediect(“/”); 这条语句虽然是在服务器执行的,但是,服务器是把斜杠 / 发送给浏览器解析。因此得到地址 http://ip[域名]:port/
小结
在编写资源路径时: , 考虑这么几点
(1) 这个路径 前面有没有 /
(2) 这个路径 在哪里被解析 [服务器还是浏览器] , 如果前面有 / , 并且是在 浏览器被解析的 被解析成 http://ip:port/ , 如果在服务器端被解析 , 被解析成 /工程路径/
(3) 如果这个路径,前面没有 / , 并且在浏览器被解析,则以浏览器当前的地址栏去掉资源部分,作为一个相对路径.
(4) 这个路径,最后有没有 / , 如果最后有/ 表示路径, 如果没有 / 表示资源