href 路径 空, /, ./, ../, // 开头的不同情况
路径的不同写法
1.(无)开头表示当前目录下的
2.(/)开头的目录表示该目录为根目录的一个子目录
3.(./)开头的目录表示该目录为当前目录(当前目录所在的目录)的一个子目录
4.(../)开头的目录表示该目录为当前目录的父目录
5.(//)开头的目录表示和当前页面使用同一种协议http/https
(无)反斜杠开头的路径是表示当前目录中和(./)相似 ——-不再多说
(./)是当前目录中(../)是上级目录中 ——-不再多说
(/)是从根目录开始,这里对于根目录的理解 ———主要可分为下面3种
(//)相当于省写了http/https 默认是和本页面用一样的协议 ———-请往下看
- (/)开头的路径
1.对于HTML 页面,如果我们在其中有关于反斜杠应用的路径,我们可以分为下面两种情况:
如直接对该页面打开访问:则这里相对的是我们的盘符,如(/res/index.html),实际路径为(C://res/index.html);
如我们在Tomcat中构建打开:则这里相对的是我们的站点,如(/webTest/html/index.html),实际路径为(http://localhost:8080/webTest/html/index.html);
2.对于我们在请求转发中调用的getRequestDispatcher()方法:
则这里相对的是我们的项目根目录,如 request.getRequestDispatcher("/ts.do"),实际路径为,如我们项目名称为webTest,而“/ts.do”是我们在web.XML中配置的servlet-mapping的url-pattern则我们这里找的该(/ts.do)其实是(http://localhost:8080/webTest/ts.do)。
3.如果我们要找的是一个具体资源如html页面:
目录结构如下:(webTest/WebContent/html/index.html)而我们知道webContent这个目录是编译器临时目录在实际生成时是没有的。所以目录修改如下(webTest/html/index.html)这时我们要用getRequestDispatcher()得到这个html页面则应是(html/index.html)。
这就是今天主要关于目录加反斜杠的难点,主要是对资源的定位问题。
加“/”是其实就代表是绝对路径(从盘符开始的),不加“/”是代表相对路径。
在这里提一下相对路径和绝对路径:
- 绝对路径:
假设有个域名www.xxx.com,并申请了虚拟主机,虚拟主机有一个目录,比如www,这个www就是网站的根目录。
根目录下放了一个文件index.html,这个文件的绝对路径是: http://www.xxx.com/index.html。
假设在www根目录下建了一个目录叫function,然后在该目录下放了一个文件info.html,这个文件的绝对路径就是http://www.xxx.com/function/info.html。
- 相对路径
假设:info.html路径是:d:/web/www/function/info.html
index.html路径是:d:/web/www/index.html
写法:<a href = "index.html">这是超连接</a>
- (//)开头的url地址
使用双斜杠(//)开头的URL例如:
<a target="_blank" href="//www.goodsunlc.com/">36nu.com</a>
超链接的url是以双斜杠“//”开头的,是依赖协议的URL表示形式,这种写法会判断当前的页面协议是http,https 或其他来决定请求 url 的协议。
当浏览本地文件的时候,它会解析为 file:// 协议,例如:
<a target="_blank" href="//test.html">36nu.com</a>
href会被解析为file://test.html/,此种写法也适用于CSS,例如:
.logo { background: url(//www.36nu.com/36nu.png); }