我意识到这个答案来得相当晚,但这是为了将来的参考.
使用ResourceHttpRequestHandlers提供静态资源(Spring 3.2)
首先,您使用< mvc:resources>进入了正确的轨道,您的路径模式声明中只有一个拼写错误:
>该位置必须是资源所在的文件夹位置(可以在您的文件系统,您的webapp资源,类路径,webJAR中…)
>模式必须考虑您的项目布局
假设你有以下结构:
src/main/webapp/static/
|- js/
|- js/lib/jquery.js
|- js/main.js
|- css/style.css
您可以像这样提供所有静态资源:
注意:cache-period和其他属性应该可以正常工作.
资源处理功能(Spring 4.1)
从Spring 4.1开始,有一些新的,更灵活的方法可以解决这个问题.
例如,您可以使用以下JS和CSS文件实现缓存清除:
当然你可以用javaconfig实现同样的东西(更优雅):
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
VersionResourceResolver versionResolver = new VersionResourceResolver()
.addContentVersionStrategy("/**");
registry.addResourceHandler("/**")
.addResourceLocations(/static/)
.resourceChain(true).addResolver(versionResolver);
}