我在使用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">
问题是该文件未映射。当我点击它时它说:找不到资源...... 任何想法如何进行,调试,了解问题? 非常感谢!
答案 0 :(得分:0)
替换
<mvc:resources mapping="/style-#{applicationProps['version']}/**" location="/style" />
通过
<mvc:resources mapping="/style-#{applicationProps['version']}/**" location="/style-#{applicationProps['version']}/" />
资源位置属性应该是完整的文件夹名称。