Url rewriting UrlRewriteFilter正在更改我的Web应用程序的上下文路径

Url rewriting UrlRewriteFilter正在更改我的Web应用程序的上下文路径,url-rewriting,struts,tomcat,Url Rewriting,Struts,Tomcat,我已经在context/myapp下配置了我的web应用程序(使用Java Struts),所以我的web应用程序URL是这样开始的 由于我们支持多个数据模型,所以我使用URLEwriteFilter来提供干净的URL。例如:假设我有两种不同类型的数据需要显示给我的用户-一种是酒店列表,另一种是医院列表-取决于登录的用户类型。但是,这两个模型都由一个名为commonView.JSP的公共JSP页面提供服务 如果用户对酒店感兴趣,URL将 …/myapp/commonView.do?type=ho

我已经在context/myapp下配置了我的web应用程序(使用Java Struts),所以我的web应用程序URL是这样开始的

由于我们支持多个数据模型,所以我使用URLEwriteFilter来提供干净的URL。例如:假设我有两种不同类型的数据需要显示给我的用户-一种是酒店列表,另一种是医院列表-取决于登录的用户类型。但是,这两个模型都由一个名为commonView.JSP的公共JSP页面提供服务

如果用户对酒店感兴趣,URL将 …/myapp/commonView.do?type=hotels

同样,对于医院来说,URL应该是 …/myapp/commonView.do?type=hospitals

现在,我不想给用户看这个奇怪的名字,上面写着“commonView.do”。因此,我使用URLEwriteFilter来提供干净的URL。见下文

<rule match-type="regex">
    <from>^/view/([A-Z,a-z,0-9]+)$</from>
    <to>/commonView.do?type=$1</to>
</rule>

^/视图/([A-Z,A-Z,0-9]+)$
/commonView.do?类型=$1
上述规则显示在浏览器中,但在内部将请求转发给commonView.do?type=hotels。医院也是如此

现在我的问题是,一旦执行了这个规则,我的上下文路径就开始像/myapp/view,而不仅仅是/myapp。正因为如此,我所有的css、js、图像等都消失了——因为现在我的web应用程序开始在/myapp/view下查找它们,而不仅仅是/myapp

我如何解决这个问题?如何避免更改上下文路径并仍然能够使用URLRewiteFilter提供干净的URL?


<rule match-type="regex">
    <note>Serve these folders from the filesystem</note>
    <from>/(css|img|js|manifest)/(.*)</from>
    <to last="true">/$1/$2</to>
</rule>
从文件系统提供这些文件夹 /(css | img | js | manifest)/(**) /$1/$2
只需添加这个
在页面的标题部分