Spring 4.3.0 + Tomcat:静态文件“无法加载资源”消息
问题描述:
我正在使用Spring MVC和AngularJS作为前端。 不幸的是,在Tomcat中部署时我看不到静态文件。Spring 4.3.0 + Tomcat:静态文件“无法加载资源”消息
我的目标是将AngularJS前端文件和Spring后端的所有东西一起作为一个WAR文件部署在Tomcat中。
我不想使用JSP或Spring XML文件。
这是我的Eclipse的Maven文件夹的结构:
我的index.html文件包含以下条目:
<script type="text/javascript" src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/angular-xeditable/dist/js/xeditable.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
<script src="js/services.js"></script>
<link href="bower_components/angular-xeditable/dist/css/xeditable.css"
rel="stylesheet">
<link href="bower_components/bootstrap/dist/css/bootstrap.min.css"
rel="stylesheet">
我SpringConfig.java看起来是这样的:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/bower_components/**").addResourceLocations("/bower_components").setCachePeriod(3600);
registry.addResourceHandler("/js/**").addResourceLocations("/js");
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
我希望有人可以帮忙我出去了!
答
我认为这只是你的斜线问题。试试这个:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("bower_components/**").addResourceLocations("/bower_components/").setCachePeriod(3600);
registry.addResourceHandler("js/**").addResourceLocations("/js/");
}
如果这不起作用,你可能不得不摆弄它。没人知道它为什么会这样,但不幸的是URL路径模式匹配已经成为Spring MVC多年来最不一致和最棘手的方面之一。
谢谢大卫!不幸的是,它没有帮助;-(我会捣鼓它.... – ThomasW