使用Struts2提供静态内容:Tomcat错误404

时间:2010-06-02 09:07:50

标签: tomcat static struts2 web-applications

使用Struts2我找不到一种方法来提供静态CSS: - /新手问题,但我在互联网上找不到任何答案:

我的WAR文件中的CSS文件是static/styles.css

当我请求http://server/myapp/static/styles.css

时,Tomcat回复404

但如果我将styles.css放在WAR的根目录并请求http://server/myapp/styles.css

我尝试将以下内容添加到我struts.xml的唯一包中,但仍然是404:

<action name="/static/*">
  <result>/static/{1}</result>
</action>

或作为第二个包裹:

<package name="static" extends="struts-default" namespace="/static">
  <action name="/static/*">
    <result>/static/{1}</result>
  </action>
</package>

2 个答案:

答案 0 :(得分:2)

这是一个非常古老的问题,但由于没有得到回答而我正在努力解决同样的问题,我相信其他人可能会从解决方案中受益。

Struts默认仅从JAR提供静态内容,但不从JAR之外的子目录提供静态内容。所以你需要将它添加到你的struts.xml:

<constant name="struts.action.excludePattern" value=".*/static/.*" />

这可以防止“静态”文件夹中的任何内容被处理为操作。

答案 1 :(得分:0)

您不需要包含任何内容(操作或包)。 Struts2默认提供静态内容。

检查在部署war文件后,资源style.css是否存在于您认为的路径中。