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頁面的相對路徑
- < link type = "text/css" rel = "stylesheet" href = "../styles/main.css" />
- < 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工程的相對路徑來引用:
- < link type = "text/css" rel = "stylesheet" href = "styles/main.css" />
- < 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都有缺點,都只適用一種情況,有沒有兩種情況都適用的呢?答案肯定的!
我們使用絕對路徑:
- < link type = "text/css" rel = "stylesheet" href = "/MyProject/styles/main.css" />
- < 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.do 和http://localhost:8080/test.jsp ,這種情況 在引用時就不能帶工程名了,應該這樣:
- < link type = "text/css" rel = "stylesheet" href = "/styles/main.css" />
- <
script
type
=
"text/javascript"
src
=
"/scripts/dtree.js"
>
</
script
>