一、概述  

为什么还要用到绝对路径呢?以下做简要介绍与分析:

二、什么是绝对路径

   绝对路径是指文件在硬盘上真正存储的路径。比如我们在D盘里的images文件夹下存了一张图片logo.png,那么这个图片的绝对路径就是D:\images\logo.png。所以我们在使用绝对路径指向该图片的时候的语句应该为:

  background-image:url("D:\images\logo.png");

  在我们实际编程中我们很少会用到绝对路径,因为本地电脑上的图片的当前位置,很可能在传输到WEB服务器上发生改变,举个简单的例子,假如你得项目文件夹在本地C盘,此时你定义了一个背景图的路径,C:\demo\images\logo.png,此时你把项目整体移动到D盘此时该图片的真正路径为D:demo\images\logo.png,而根据原路径是找不到的。

  

java绝对路劲 URL url绝对路径_java绝对路劲 URL

java绝对路劲 URL url绝对路径_相对路径_02

三、什么是相对路径:

  相对路径是指,相对于本文件的目标文件的位置。相对路径可以避免在项目整体目录改变时,绝对路径找不到的问题。相对路径有以下几种情况:

  (1)本文件与目标文件在同一根目录下,例如:demo.html与logo.png在同一目录下:

    

java绝对路劲 URL url绝对路径_java绝对路劲 URL_03

    这时指向logo的相对路径为:background-image:url(logo.png);

    

  (2)本文件与目标文件的上级目录在同一根目录下,例如demo与image在同一目录下,logo在image文件夹内:

    

java绝对路劲 URL url绝对路径_java绝对路劲 URL_04

  

java绝对路劲 URL url绝对路径_目标文件_05

    这时指向logo的相对路径为:background-image:url(image/logo.png);

  (3)本文件的上级目录与目标文件的上级目录在同一根目录下,例如:demo.html在html文件夹下,logo在image下:

    

java绝对路劲 URL url绝对路径_相对路径_06

java绝对路劲 URL url绝对路径_相对路径_07

java绝对路劲 URL url绝对路径_相对路径_08

    这时指向logo的相对路径为:background-image:url(../image/logo.png); 这里的../是指向上一级目录,如果你的本文件在第2层目录下用../../去找,依次类推在n层就用n个../。  

四、绝对路径与相对路径的优缺点及使用的地方

  1、绝对路径的优点:

如果网页位置改变,里面的链接还是指向正确的URL。

  2、绝对路径的缺点:

      在编码编写时不方便使用绝对路径,因为链接应该指向真正的域名而不是开发站点。

  3、相对路径的优点:

      A、容易移动内容,可以整个目录移动。

      B、测试方法比较灵活,本机测试时比较方便。

  4、相对路径的缺点:

 A、部分内容页面换了位置时,链接容易失效。

      B、容易被人大面积采集抄袭。

跳转地址变化非常大,网页内图片不能显示,这时就需要用到绝对路径了,但是为了项目的正常运行绝对路径不能写死(这里有的人叫做相对虚拟目录,其实就是绝对路径的原理),我用JS取值:

//获取项目路径
var contextPath = "${pageContext.request.contextPath}";

//  将   项目路径   与   相对虚拟目录   拼接成绝对路径
var url = contextPath + "/images/logo.jpg";

//给元素URL赋值
$("元素").css("background-image","url(" + url + ")");

这样无论我们项目部署在哪或者是访问地址如何改变,访问路径都能正确的指向我们想要的url,解决了我们所说的项目移植等问题。