2016-07-15 114 views
2

我正在使用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(); 
    } 

我希望有人可以幫忙我出去了!

回答

0

我認爲這只是你的斜線問題。試試這個:

@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