引用外部.css或.js文件的路徑問題

jsp或html頁面引用外部.css或.js文件時,注意路勁問題,如果設置不當,會引用不到這些外部的文件
假設使用下面的目錄結構:
-webapp
|-MyProject  目錄
 |--WebContent 目錄
  |---scripts 目錄
   ---dtree.js 文件
  |---styles 目錄
   ---main.css 文件
  |---pages 目錄
   ---test.jsp 文件

 

現在例如要在test.jsp中引用scripts目錄下的dtree.js和styles目錄下的main.css

 

有如下幾種方法:

 

 

 

1.使用相對於jsp頁面的相對路徑

Html代碼
  1. < link   type = "text/css"   rel = "stylesheet"   href = "../styles/main.css"   />   
  2. < script   type = "text/javascript"   src = "../scripts/dtree.js" > </ script >   
<link type="text/css" rel="stylesheet" href="../styles/main.css" />
<script type="text/javascript" src="../scripts/dtree.js"></script>

 

這樣在頁面使用http://localhost:8080/MyProject/test.jsp 訪問test.jsp時就可以引用到dtree.js和 main.css。

 

2.使用相對於Web工程的相對路徑

對於1中的相對使用相對於於jsp頁面的相對路徑的這種方式,如果我們是設置action跳轉到test.jsp頁面,那 麼這種使用相對路徑的方式就引用不到了。
例如我們當訪問http://localhost:8080/MyProject/main.do 的時候,頁面跳轉到test.jsp頁面,如果使
用方法1,就引用不到了。
這個時候我們可以使用相對於Web工程的相對路徑來引用:

Html代碼
  1. < link   type = "text/css"   rel = "stylesheet"   href = "styles/main.css"   />   
  2. < script   type = "text/javascript"   src = "scripts/dtree.js" > </ script >   
<link type="text/css" rel="stylesheet" href="styles/main.css" />
<script type="text/javascript" src="scripts/dtree.js"></script>

 

但是請注意:使用方法2這種方式引用,如果直接訪問http://localhost:8080/MyProject/test.jsp ,是 引用不到的。

 

3.使用Web工程的絕對路徑

方法1和方法2都有缺點,都只適用一種情況,有沒有兩種情況都適用的呢?答案肯定的!
我們使用絕對路徑:

Html代碼
  1. < link   type = "text/css"   rel = "stylesheet"   href = "/MyProject/styles/main.css"   />   
  2. < script   type = "text/javascript"   src = "/MyProject/scripts/dtree.js" > </ script >   
<link type="text/css" rel="stylesheet" href="/MyProject/styles/main.css" />
<script type="text/javascript" src="/MyProject/scripts/dtree.js"></script>

 

這樣,不管是通過http://localhost:8080/MyProject/main.do 跳轉訪問test.jsp還是直接訪問 http://localhost:8080/MyProject/test.jsp ,都可以成功引用。

 

注意:如果我們在部署Web應用時,沒有設置Context Root(一般情況下配置爲工程名),也就是IP和端 口後面不帶應用名,如http://localhost:8080/main.dohttp://localhost:8080/test.jsp ,這種情況 在引用時就不能帶工程名了,應該這樣:

Html代碼
  1. < link   type = "text/css"   rel = "stylesheet"   href = "/styles/main.css"   />   
  2. < script   type = "text/javascript"   src = "/scripts/dtree.js" > </ script >  
發佈了73 篇原創文章 · 獲贊 16 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章