tomcat - 如何设置 tomcat 以使用应用程序基目录的子目录作为网站资源?

标签 tomcat tomcat7

我需要如下设置一个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 文件之外的任何内容。最初,我更喜欢“资源”子目录,但后来我在某个网站上读到,我现在不记得在过去几个小时里阅读的大量网站中,标准显然是“WebContent”;一个不起作用的标准。这是否有可能仅使用 webapp 的本地配置?

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

我尝试设置一个本地 META-INF/context.xml,但它显然被忽略了(无论我写入什么,tomcat 从不提示),并且 web.xml 中的 -tags 不做任何事情(除了如果结束标记中有拼写错误,则不会导致错误)。

最佳答案

是的,如果你想让资源在部署时对应用程序可用,它们必须位于 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" />

关于tomcat - 如何设置 tomcat 以使用应用程序基目录的子目录作为网站资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10159918/

相关文章:

java - 将 Java 项目库转换为动态 Web 项目

java - 如何在 OpenShift 上启动与 JDBC 的连接?

spring - Camel 不在 Spring 开始

java - jahia 添加 tomcat web 上下文

java - Web 应用程序不使用 Spring Boot 和 Tomcat 提供静态资源

web-services - 如何获取部署在 Tomcat 中的 webapp 的 url 请求/响应计数

css - Bootstrap btn高度与tomcat

java - 将 Vaadin 用于 OfBiz 网站

java - Maven tomcat7部署集成测试失败

tomcat - 上下文名称可能与 Tomcat 并行部署的 WAR 名称不同