使用Spring MVC中的路径中的版本号映射静态资源

时间:2015-09-15 09:29:23

标签: java spring jsp spring-mvc

我在使用Spring MVC提供静态资源时尝试实现版本控制。我需要强制客户端在部署新版本的应用程序时重新加载资源。

我已经关注了春季官方指南here,我不能让它与mvc:资源一起使用,但它可以在JSP页面中使用。

这是我在springMVC-servlet.xml中的配置:

<mvc:resources mapping="/style-#{applicationProps['version']}/**" location="/style" />
...
<util:properties id="applicationProps" location="/WEB-INF/conf/application.properties"/>

这是正在运行的jsp的一部分:

<spring:eval expression="@applicationProps['version']" var="applicationVersion"/>
<link rel="stylesheet" type="text/css" href="/style-${applicationVersion}/style-common.css">

最后这是浏览器中的页面源:

<link rel="stylesheet" type="text/css" href="/style-2.1-SNAPSHOT/style-common.css">

问题是该文件未映射。当我点击它时它说:找不到资源...... 任何想法如何进行,调试,了解问题? 非常感谢!

1 个答案:

答案 0 :(得分:0)

替换

 <mvc:resources mapping="/style-#{applicationProps['version']}/**" location="/style" />

通过

<mvc:resources mapping="/style-#{applicationProps['version']}/**" location="/style-#{applicationProps['version']}/" />

资源位置属性应该是完整的文件夹名称。