jsp在引用js文件或者css文件时,会出现路径问题。如下图所示的一个工程:
-webapp
|-MyProject 目录
|--WebContent 目录
|---scripts 目录
---dtree.js 文件
|---styles 目录
---main.css 文件
|---pages 目录
---test.jsp 文件
当我在test.jsp文件中引用styles目录下的main.css和scripts目录下的dtree.js文件时,可以使用相对路径:
<link type="text/css" rel="stylesheet" href="../styles/main.css" /><script type="text/javascript" src="../scripts/dtree.js"></script>
不过如果我们通过action跳转到test.jsp,这样使用相对路径就不一定正确了。这时可以使用相对于工程的绝对路径:
<link type="text/css" rel="stylesheet" href="styles/main.css" /><script type="text/javascript" src="scripts/dtree.js"></script>
但是这样如果直接访问test.jsp文件时,又访问不到js和css文件了。可以使用WEb工程的绝对路径:
<link type="text/css" rel="stylesheet" href="/MyProject/styles/main.css" /><script type="text/javascript" src="/MyProject/scripts/dtree.js"></script>
注意:如果我们在部署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>