2015-04-28 2 views
3

У меня есть проект Spring Boot, который должен запустить угловой спа-центр. Структура папки ресурсов заключается в следующем:Не загружать статические ресурсы в Spring Boot, Thymeleaf и AngularJs app

enter image description here

В папке/Src шаблонов есть файл index.html я начинаю с контроллером:

@RequestMapping("/") 
String index() { 
    return "src/index"; 
} 

таким образом я успешно начать index.html, но все resurces под:

  • bower_components
  • сек гс/JS
  • SRC/CSS

не загружены правильно. Поэтому я добавил конфигурацию:

@Configuration 
public class WebConfig extends WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter { 

    private static final Logger LOGGER = Logger.getLogger(WebConfig.class); 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler( "/js/**") 
       .addResourceLocations( "/templates/src/js/"); 
    } 
} 

, но я до сих пор не в состоянии загрузить все необходимые ресурсы, потому что я получаю 404

enter image description here

Я не понимаю, что я делаю неправильно.

Здесь идет также index.html:

<!DOCTYPE html> 
<html lang="en" data-ng-app="app"> 
<head> 
    <meta charset="utf-8" /> 
    <title>Angular version | Angulr</title> 
    <meta name="description" content="Angularjs, Html5, Music, Landing, 4 in 1 ui kits package" /> 
    <meta name="keywords" content="AngularJS, angular, bootstrap, admin, dashboard, panel, app, charts, components,flat, responsive, layout, kit, ui, route, web, app, widgets" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> 
    <link rel="stylesheet" href="../bower_components/bootstrap/dist/css/bootstrap.css" type="text/css" /> 
    <link rel="stylesheet" href="../bower_components/animate.css/animate.css" type="text/css" /> 
    <link rel="stylesheet" href="../bower_components/font-awesome/css/font-awesome.min.css" type="text/css" /> 
    <link rel="stylesheet" href="../bower_components/simple-line-icons/css/simple-line-icons.css" type="text/css" /> 
    <link rel="stylesheet" href="css/font.css" type="text/css" /> 
    <link rel="stylesheet" href="css/app.css" type="text/css" /> 
</head> 
<body ng-controller="AppCtrl"> 
    <div class="app" id="app" ng-class="{'app-header-fixed':app.settings.headerFixed, 'app-aside-fixed':app.settings.asideFixed, 'app-aside-folded':app.settings.asideFolded, 'app-aside-dock':app.settings.asideDock, 'container':app.settings.container}" ui-view=""></div> 


    <!-- jQuery --> 
    <script src="../bower_components/jquery/dist/jquery.min.js"></script> 

    <!-- Angular --> 
    <script src="../bower_components/angular/angular.js"></script> 

    <script src="../bower_components/angular-animate/angular-animate.js"></script> 
    <script src="../bower_components/angular-cookies/angular-cookies.js"></script> 
    <script src="../bower_components/angular-resource/angular-resource.js"></script> 
    <script src="../bower_components/angular-sanitize/angular-sanitize.js"></script> 
    <script src="../bower_components/angular-touch/angular-touch.js"></script> 

    <script src="../bower_components/angular-ui-router/release/angular-ui-router.js"></script> 
    <script src="../bower_components/ngstorage/ngStorage.js"></script> 
    <script src="../bower_components/angular-ui-utils/ui-utils.js"></script> 

    <!-- bootstrap --> 
    <script src="../bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script> 
    <!-- lazyload --> 
    <script src="../bower_components/oclazyload/dist/ocLazyLoad.js"></script> 
    <!-- translate --> 
    <script src="../bower_components/angular-translate/angular-translate.js"></script> 
    <script src="../bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js"></script> 
    <script src="../bower_components/angular-translate-storage-cookie/angular-translate-storage-cookie.js"></script> 
    <script src="../bower_components/angular-translate-storage-local/angular-translate-storage-local.js"></script> 

    <!-- App --> 
    <script src="js/app.js"></script> 
    <script src="js/config.js"></script> 
    <script src="js/config.lazyload.js"></script> 
    <script src="js/config.router.js"></script> 
    <script src="js/main.js"></script> 
    <script src="js/services/ui-load.js"></script> 
    <script src="js/filters/fromNow.js"></script> 
    <script src="js/directives/setnganimate.js"></script> 
    <script src="js/directives/ui-butterbar.js"></script> 
    <script src="js/directives/ui-focus.js"></script> 
    <script src="js/directives/ui-fullscreen.js"></script> 
    <script src="js/directives/ui-jq.js"></script> 
    <script src="js/directives/ui-module.js"></script> 
    <script src="js/directives/ui-nav.js"></script> 
    <script src="js/directives/ui-scroll.js"></script> 
    <script src="js/directives/ui-shift.js"></script> 
    <script src="js/directives/ui-toggleclass.js"></script> 
    <script src="js/controllers/bootstrap.js"></script> 
    <!-- Lazy loading --> 
</body> 
</html> 

ответ

9

Обновить местоположение ресурса, чтобы указать на пути к классам.

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/js/**") 
      .addResourceLocations("classpath:/templates/src/js/"); 
} 

Spring Загрузочный также добавляет статическое содержимое автоматически в следующих местах пути к классам:

  • /META-INF/resources
  • /resources/
  • /static/
  • /public/

Источник: Serving Static Web Content with Spring Boot

+0

Работал, но я не понимаю. Не является/src/main/resources/static/** местом, где весенняя загрузка будет искать по умолчанию ?! Затем мы должны добавить Bean. ОК. Но тогда этот classpath: вещь - использование самого весеннего mvc не требуется. – Hinotori