我知道我应该能够从WAR根目录"/"引用WAR文件应用程序中的所有文件。但它似乎不起作用。我真的被难住了。
我的应用程序将其web内容部署在以下WAR文件中。
WAR
index.html
META-INF
WEB-INF
css
fonts.css
other style sheets
images
Banner.jpg
jsp-pages
headers
beg.jsp
menu.jsp
end.jsp
level-1
pages
anypage.jsp
multiple subdirectories
multipe subdirecories
scripts
multiple scripts
我的应用程序在WAR目录的不同级别中有数百个html页面。它们都需要引用不同目录级别的图像、css文件、脚本文件和其他html页面。
因此,我非常希望能够引用WAR根目录"/"中的所有文件。(所以我不必每次都数"../"的数量。
我知道这应该让我从任何级别的任何文件链接这个样式表:
<link href="/css/fonts.css" rel="stylesheet" type="text/css"/>
但它不起作用,所以我不得不使用相对参照。
<link href="../../../css/fonts.css" rel="stylesheet" type="text/css"/>
更糟糕的是。这似乎不一致。
例如,WAR/jsp pages/level-1/pages中的所有html文件都是这样构造的。
<%@ include file='/jsp-pages/level-1/headers/beg.jsp'%>
content
<%@ include file='/jsp-pages/level-1/headers/end.jsp' %>
这是beg.jsp代码。所以请注意,我可以从WEB根目录"/"引用beg.jsp中的include。但我必须参考图片相对于页面的文件夹。
beg.jsp
<html>
<head>
the css link above
</head>
<body>
<div class="banner">
<!-- this needed a relative reference -->
<img style="width:100%" src='../../../images/Banner.jpg'/>
<!-- but I could reference this include from '/' -->
<%@ include file='/jsp-pages/level-1/headers/menu.jsp' %>
<!-- Every page must close with -->
<!-- </div> For: class='content-block'> -->
<!-- </div> For: class='scroll-block'> -->
<!-- </body> -->
<!-- </html> -->
解决方案非常简单,令人尴尬。
有点令人失望,没有人提供。
如果您使用部署应用程序
<web>
<web-uri>Pct109.war</web-uri>
<context-root>/</context-root>
</web>
也就是说,应用程序打开时只需http://domanName.org/
然后你可以用"/"参考所有战争文件
但是,如果你想在同一个域下部署许多应用程序,并为所有应用程序提供更深入的上下文,比如
<web>
<web-uri>Pct109.war</web-uri>
<context-root>/Pct109</context-root>
</web>
也就是说,它以http://domanName.org/Pct109,您可以使用/Pct109/参考所有战争文件
显而易见。。。咧嘴笑一旦你弄清楚了。
战争文件是从您部署它们的方式中引用的…不仅仅是从的战争包顶部
快乐之路。