jsp或html頁面引用外部.css或.js文件時,注意路勁問題,如果設置不當,會引用不到這些外部的文件
假設使用下面的目錄結(jié)構(gòu):
-webapp
|-MyProject 目錄
|--WebContent 目錄
|---scripts 目錄
---dtree.js 文件
|---styles 目錄
---main.css 文件
|---pages 目錄
---test.jsp 文件
現(xiàn)在例如要在test.jsp中引用scripts目錄下的dtree.js和styles目錄下的main.css
有如下幾種方法:
1.使用相對于jsp頁面的相對路徑
Html代碼 [url=http://javatechnology.javaeye.com/blog/577469#][/url]
這樣在頁面使用http://localhost:8080/MyProject/test.jsp訪問test.jsp時就可以引用到dtree.js和main.css。
2.使用相對于Web工程的相對路徑
對于1中的相對使用相對于于jsp頁面的相對路徑的這種方式,如果我們是設置action跳轉(zhuǎn)到test.jsp頁面,那么這種使用相對路徑的方式就引用不到了。
例如我們當訪問http://localhost:8080/MyProject/main.do的時候,頁面跳轉(zhuǎn)到test.jsp頁面,如果使用方法1,就引用不到了。
這個時候我們可以使用相對于Web工程的相對路徑來引用:
Html代碼 [url=http://javatechnology.javaeye.com/blog/577469#][/url]
但是請注意:使用方法2這種方式引用,如果直接訪問http://localhost:8080/MyProject/test.jsp,是引用不到的。
3.使用Web工程的絕對路徑
方法1和方法2都有缺點,都只適用一種情況,有沒有兩種情況都適用的呢?答案肯定的!
我們使用絕對路徑:
Html代碼 [url=http://javatechnology.javaeye.com/blog/577469#][/url]
這樣,不管是通過http://localhost:8080/MyProject/main.do跳轉(zhuǎn)訪問test.jsp還是直接訪問http://localhost:8080/MyProject/test.jsp,都可以成功引用。
注意:如果我們在部署Web應用時,沒有設置Context Root(一般情況下配置為工程名),也就是IP和端口后面不帶應用名,如http://localhost:8080/main.do和http://localhost:8080/test.jsp,這種情況在引用時就不能帶工程名了,應該這樣:
Html代碼 [url=http://javatechnology.javaeye.com/blog/577469#][/url]
|-MyProject 目錄
|--WebContent 目錄
|---scripts 目錄
---dtree.js 文件
|---styles 目錄
---main.css 文件
|---pages 目錄
---test.jsp 文件
現(xiàn)在例如要在test.jsp中引用scripts目錄下的dtree.js和styles目錄下的main.css
有如下幾種方法:
Html代碼 [url=http://javatechnology.javaeye.com/blog/577469#][/url]
<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。
對于1中的相對使用相對于于jsp頁面的相對路徑的這種方式,如果我們是設置action跳轉(zhuǎn)到test.jsp頁面,那
例如我們當訪問http://localhost:8080/MyProject/main.do的時候,頁面跳轉(zhuǎn)到test.jsp頁面,如果使
這個時候我們可以使用相對于Web工程的相對路徑來引用:
Html代碼 [url=http://javatechnology.javaeye.com/blog/577469#][/url]
<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,是引用不到的。
方法1和方法2都有缺點,都只適用一種情況,有沒有兩種情況都適用的呢?答案肯定的!
我們使用絕對路徑:
Html代碼 [url=http://javatechnology.javaeye.com/blog/577469#][/url]
<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跳轉(zhuǎn)訪問test.jsp還是直接訪問http://localhost:8080/MyProject/test.jsp,都可以成功引用。
注意:如果我們在部署Web應用時,沒有設置Context Root(一般情況下配置為工程名),也就是IP和端口后面不帶應用名,如http://localhost:8080/main.do和http://localhost:8080/test.jsp,這種情況在引用時就不能帶工程名了,應該這樣:
Html代碼 [url=http://javatechnology.javaeye.com/blog/577469#][/url]
<link type ="text/css" rel ="stylesheet" href ="/styles/main.css" /> <script type ="text/javascript" src ="/scripts/dtree.js" ></script>