【发布时间】:2014-05-01 11:48:44
【问题描述】:
谁能告诉我如何使用 Jetty 9 为 web 应用程序配置静态内容。我一直在尝试这样做,但我没有任何运气。所有对静态内容的请求(例如 css/* 或 img/*)都直接转到我的 / 的 servlet 处理程序。
root
|-war
|-css
|-img
|-js
|-WEB-INF
|-web.xml
我的 web.xml 看起来像:
<webapp>
...
...
<servlet-mapping>
<servlet-name>App</servlet-name>
<url-pattern>/app</url-pattern>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- SOMETHING HERE FOR STATIC CONTENT ?? -->
</webapp>
我只是不明白如何处理码头文档中的这个例子:
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.server.handler.ContextHandler">
<Set name="contextPath">/scratch</Set>
<Set name="handler">
<New class="org.eclipse.jetty.server.handler.ResourceHandler">
<Set name="resourceBase">/home/jesse/scratch</Set>
<Set name="directoriesListed">true</Set>
</New>
</Set>
</Configure>
我尝试过使用它并将文件放在不同的位置,但我无法让它工作。我的 servlet 处理得很好,但是我的页面没有样式、图像或 js,因为它们找不到内容。
【问题讨论】:
-
正如 Jetty 文档中所说,您应该在“${jetty.home}/webapps”@eclipse.org/jetty/documentation/current/… 下创建 XML 文件,但这会引起很多问题,因为如果您需要在项目上下文(覆盖默认值)或在 Jenkins 等平台上使用它...