Spring 4.3.0 + Tomcat:静态文件“无法加载资源”消息

问题描述:

我正在使用Spring MVC和AngularJS作为前端。 不幸的是,在Tomcat中部署时我看不到静态文件。Spring 4.3.0 + Tomcat:静态文件“无法加载资源”消息

我的目标是将AngularJS前端文件和Spring后端的所有东西一起作为一个WAR文件部署在Tomcat中。

我不想使用JSP或Spring XML文件。

这是我的Eclipse的Maven文件夹的结构:

Structure of webapp folder

我的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多年来最不一致和最棘手的方面之一。

+0

谢谢大卫!不幸的是,它没有帮助;-(我会捣鼓它.... – ThomasW