spring mvc url 由 nginx 重写
spring mvc url rewrite by nginx
我正在使用标签 mvc:resources 来处理我的 spring mvc 项目中的静态文件。
好吧,我想使用 SEO 重写 url,例如 /page?id=1 >> /page/1.html.
[spring-context.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= last;
proxy_pass http://127.0.0.1:8080/project/;
问题:
所有的静态文件都会加一个前缀page,绝对不能获取到正确的文件,
比如'localhost/js/index.js'变成'localhost/page/js/index.js'
那么我该如何解决这个问题呢?有什么建议吗?
我试过用urlrewritefilter(org.tuckey)得到同样的情况QAQ
我相信你现在已经找到了你的答案,但我会为那些在你之后寻找相同答案的人回答。
location ~ ^/script/(.*)$ {
alias /var/lib/tomcat7/webapps/ROOT/assets/js/;
autoindex off;
}
location ~ ^/styles/(.*)$ {
alias /var/lib/tomcat7/webapps/ROOT/assets/css/;
autoindex off;
}
location ~ ^/images/(.*)$ {
alias /var/lib/tomcat7/webapps/ROOT/assets/images/;
autoindex off;
}
以上相当于nginx中的以下spring资源映射
<mvc:resources mapping="/images/**" location="/assets/images/"/>
<mvc:resources mapping="/styles/**" location="/assets/css/"/>
<mvc:resources mapping="/script/**" location="/assets/js/"/>
希望对您有所帮助
此致,
我正在使用标签 mvc:resources 来处理我的 spring mvc 项目中的静态文件。
好吧,我想使用 SEO 重写 url,例如 /page?id=1 >> /page/1.html.
[spring-context.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= last;
proxy_pass http://127.0.0.1:8080/project/;
问题:
所有的静态文件都会加一个前缀page,绝对不能获取到正确的文件,
比如'localhost/js/index.js'变成'localhost/page/js/index.js'
那么我该如何解决这个问题呢?有什么建议吗?
我试过用urlrewritefilter(org.tuckey)得到同样的情况QAQ
我相信你现在已经找到了你的答案,但我会为那些在你之后寻找相同答案的人回答。
location ~ ^/script/(.*)$ {
alias /var/lib/tomcat7/webapps/ROOT/assets/js/;
autoindex off;
}
location ~ ^/styles/(.*)$ {
alias /var/lib/tomcat7/webapps/ROOT/assets/css/;
autoindex off;
}
location ~ ^/images/(.*)$ {
alias /var/lib/tomcat7/webapps/ROOT/assets/images/;
autoindex off;
}
以上相当于nginx中的以下spring资源映射
<mvc:resources mapping="/images/**" location="/assets/images/"/>
<mvc:resources mapping="/styles/**" location="/assets/css/"/>
<mvc:resources mapping="/script/**" location="/assets/js/"/>
希望对您有所帮助
此致,