spring mvc url rewrite by nginx



我正在使用标签 mvc:resources 来处理我的春季 mvc 项目中的静态文件。

好吧,我想使用/page?id=1>>/page/1.html 重写 SEO 的网址。

[春季语境.xml]

<mvc:annotation-driven />
<mvc:resources location="/WEB-INF/view/css/"    mapping="/css/**" />
<mvc:resources location="/WEB-INF/view/images/" mapping="/images/**" />
<mvc:resources location="/WEB-INF/view/js/" mapping="/js/**" />
<mvc:resources location="/WEB-INF/view/jsp/" mapping="/jsp/**" />

[nginx.conf]

rewrite      ^/page/(.*)(.html)$ /page?id=$1 last;
proxy_pass   http://127.0.0.1:8080/project/;

问题:

所有的静态文件都会添加一个前缀页面,绝对不能得到正确的文件,

例如"localhost/js/index.js"变为"localhost/page/js/index.js

那么我该如何解决这个问题呢?有什么建议吗?

我尝试使用urlrewritefilter(org.tuckey)并得到相同的情况QAQ

我相信

现在你会找到你的答案,但我会回答那些在你之后寻找相同答案的人。

location ~ ^/script/(.*)$ {
                        alias   /var/lib/tomcat7/webapps/ROOT/assets/js/$1;
                        autoindex off;
                }

    location ~ ^/styles/(.*)$ {
                        alias   /var/lib/tomcat7/webapps/ROOT/assets/css/$1;
                        autoindex off;
                }

    location ~ ^/images/(.*)$ {
                        alias   /var/lib/tomcat7/webapps/ROOT/assets/images/$1;
                        autoindex off;
                }

以上相当于nginx中的以下弹簧资源映射

<mvc:resources mapping="/images/**" location="/assets/images/"/>
<mvc:resources mapping="/styles/**" location="/assets/css/"/>
<mvc:resources mapping="/script/**" location="/assets/js/"/>

希望这有帮助

此致敬意

最新更新