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

使用Struts2提供静态内容:Tomcat错误404,tomcat,static,struts2,web-applications,Tomcat,Static,Struts2,Web Applications,使用Struts2,我找不到一种方法来提供静态CSS:-/新手问题,但我在互联网上找不到任何答案: CSS文件在我的WAR文件中是static/styles.CSS 当我请求http://server/myapp/static/styles.css 但是如果我把styles.css放在战争的根源并请求http://server/myapp/styles.css 我尝试在唯一的包中将以下内容添加到我的struts.xml,但仍然是404: <action name="/static/*"&g

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

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

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

但是如果我把
styles.css
放在战争的根源并请求
http://server/myapp/styles.css

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

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

/静态/{1}
或者作为第二个包:

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

/静态/{1}

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


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

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

默认情况下,Struts只从JAR提供静态内容,而不从JAR之外的子目录提供静态内容。因此,您需要将其添加到struts.xml中:

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


这将阻止“静态”文件夹中的任何内容作为操作处理。

Struts2 dispatcher是否设置为/*?你读过这个吗?我读过这一页,是的。第一段解释了默认情况下如何启用静态内容。第2段解释了如何编写自己的加载程序(不需要)。第三段解释了我的代码应该可以工作。第4段解释了如何防止上菜(不需要)。总结:根据本页,我的代码应该可以工作。不过,本页并没有讨论“/*”。