如何设置tomcat以使用应用程序的子目录';网站的基本目录';谁的资源?

如何设置tomcat以使用应用程序的子目录';网站的基本目录';谁的资源?,tomcat,tomcat7,Tomcat,Tomcat7,我需要设置一个tomcat webapp,如下所示: webapps/ABC ├── WebContent │   ├── img │ │ └── ABC.png │   ├── ABC.jsp │ ├── ABCDEF.jsp │   └── styles │      └── ABC.css └── WEB-INF ├── classes │   ├── model │   │   └── ABCData.class │   └── servle

我需要设置一个tomcat webapp,如下所示:

webapps/ABC
├── WebContent
│   ├── img
│   │   └── ABC.png
│   ├── ABC.jsp
│   ├── ABCDEF.jsp
│   └── styles
│       └── ABC.css
└── WEB-INF
    ├── classes
    │   ├── model
    │   │   └── ABCData.class
    │   └── servlet
    │       └── ABC.class
    │   └── otherstuff
    │       └── ABChelper.class
    ├── lib
    └── web.xml
我设法让tomcat在访问[host]/ABC时显示ABC.jsp文件,但在ABC.jsp中存在大量对“img/ABC.png”或“styles/ABC.css”等的引用。我想让tomcat在“WebContent”子目录中自动查找除.class或.jar文件以外的任何内容。起初,我更喜欢一个“资源”子目录,但后来我在一些网站上读到,在过去几个小时我读过的大量网站中,我现在记不起标准显然是“网络内容”;一个不起作用的标准。这是否可以仅使用webapp的本地配置

理想情况下,我希望稍后从webapp根目录创建一个.jar文件并将其部署到服务器


我试着设置一个本地META-INF/context.xml,但这显然被忽略了(无论我写了什么,tomcat都不会抱怨),并且web.xml中的-tag没有做任何事情(除了在结束标记中出现键入错误之外)。

是,如果您想在部署应用程序时使资源对应用程序可用,它们必须位于WebContent或其子目录中,或者如果您将资源打包到一个jar中以供其他项目使用,请将它们放入META-INF/resources目录(自动加载需要Servlet 3.0)。我认为您唯一可能缺少的是从上下文路径检索它们

使用类似以下内容:

<link rel="stylesheet" href="${pageContext.request.contextPath}/styles/ABC.css" />
<img src="${pageContext.request.contextPath}/img/ABC.png" />