我知道我应该能够从WAR文件应用程序的根''中引用所有文件。 但这似乎并不奏效。而且我真的很疑惑。
我的应用程序在以下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
我的应用程序已经有数百个html页面在WAR目录的不同层次。而它们都需要引用图片、css文件、脚本文件和其他html页面的不同目录级别。
因此,我非常希望能够从WAR根目录中引用所有文件。(这样我就不用每次都要计算'...'的数量了。我每次都需要。
我知道这应该让我从任何级别的任何文件链接这个样式表。
<link href="/css/fonts.css" rel="stylesheet" type="text/css"/>
但这并不奏效,所以我不得不使用相对引用。
<link href="../../../css/fonts.css" rel="stylesheet" type="text/css"/>
更糟糕的是。它似乎并不一致。
例如,WARjsp-pageslevel-1pages中的所有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。 但是我必须相对于页面的文件夹来引用图片。
乞丐.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.orgPct109你可以用Pct109参考所有的战争文件。
很明显......咧嘴一笑......只要你想明白了。
战争文件是参考你如何部署它们......不只是从战争包的顶部。
快乐的小径。