我正在使用标签 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/"/>
希望这有帮助
此致敬意