我正在Eclipse上开发一个webapp,这是文件系统目录结构:
myapp
- src
- build
- WebContent
- pages
- css
- images
- modules
- META-INF
- WEB-INF
当我使用Tomcat(从Eclipse运行)运行此webapp时,我可以在浏览器中加载 使用例如此URL包含在(myapp - > WebContent - >页面)中的jsp页面:
http://hostname:8080/myapp/pages/somepage.jsp
然而问题是在这样的somepage.jsp中加载css和图像会失败。 在somepage.jsp的代码中,我用这种方式指出了css:
<link href="../css/new_style.css" rel="stylesheet" type="text/css"/>
以这种方式形象:
<img src="../images/someimage.png"/>
问题是我不知道为什么没有加载这样的图像和CSS。
答案 0 :(得分:0)
问题在于相对路径,总是一种更安全的做法,比如
<link href="<%=request.getContextPath()%>/css/new_style.css" rel="stylesheet" type="text/css"/>
或JSTL等价物
<link href="${pageContext.request.contextPath}/css/new_style.css" rel="stylesheet" type="text/css"/>
而不是从根开始,也考虑了上下文路径
答案 1 :(得分:0)
更好的方法是使用${pageContext.request.contextPath}
,因为它返回应用程序上下文的名称。
对于前,
myapp/css/new_style.css
可以像{pageContext.request.contextPath}myapp/css/new_style.css
请点击此处了解What does "./" (dot slash) refer to in terms of an HTML file path location?