2016-06-02 7 views
0

Я пытаюсь создать Spring Boot с Mvc и AngularJs. Я изменил View Resolver моего приложения, чтобы указать свое приложение, чтобы посмотреть в папке «WEB-INF/pages /» для моих статических html-файлов. Теперь на HTML файл я заявил источник моих AngularJs библиотек, используя webjars зависимостьSpring Boot Статические ресурсы

<script src="webjars/angularjs/1.5.5/angular.min.js"></script> 

Я знаю, что для того, чтобы сделать эту работу, я должен объявить путь к классам webjars libray на ResourceHandlerRegistry приложения так в моем файле конфигурации я добавил только эту строку кода

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); 
} 

После добавления этой строки мой код как-то работает, но то, что делает меня любопытным является то, что об этой линии на моем HTML файл

<script src="resources/js/angular/app.js"></script> 

я заметил, что на приложения Spring MVC, что для того, чтобы весной, чтобы обнаружить файлы Javascript в папке ресурсов веб-приложение является то, что мы должны объявить эту папку на ResourceHandlerRegistry, как эта

public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); 
} 

но я гаванью» t объявила мою папку ресурсов webapp в моей Spring Boot ResourceHandlerRegistry, но все же приложение может видеть мой файл app.js, и мои коды AngularJs по-прежнему работают. Вот структура файла моего приложения

src |--main |--java |--resources |--webapp |--resources |--js |--angular |--app.js |--WEB-INF |--index.html

ответ

3

Вот как статические работы рессора загрузочного Интернета. По умолчанию вы должны поместить свои js, image, css в ресурсы/статические. Если вы используете тимелеар, поместите шаблон в ресурсы. Образец, как показано ниже.

enter image description here

Это, как вы называете, обратите внимание, что ../ .. на самом деле идет в/ресурсы:

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" 
    href="../../css/bootstrap.min.css" /> 
    <link rel="stylesheet" th:href="@{/css/signin.css}" 
    href="../../css/signin.css" /> 
</head> 

UPDATE после OP дал структуру файла: ресурсы, расположенные на веб-приложение/ресурсы, которые являются статическими папками по умолчанию для весеннего mvc (не весенний ботинок - см. this blog).

статические папки ССЭПА рессоры расположены в (см Spring IO Blog):

  • /META_INF/ресурсы
  • /статические
  • /ресурсы
  • /общественный
+0

Я отредактированный мой вопрос для разъяснения, я не использовал thymleaf для своего приложения и создал папку webapp. Папка ресурсов, на которую я ссылаюсь, - это папка в папке webapp, а не папка ресурсов в каталоге 'src/main/resources' – anathema

+0

hemm .. это странно. Статические папки по умолчанию, известные для загрузки Spring, это/META-INF/resources /,/resources,/static и/public ... См. Https://spring.io/blog/2013/12/19/serving-static -web-content-with-spring-boot – Rudy

+0

Я нашел ответ, webapp/resources - статическая папка по умолчанию mvc, а не spring boot. Обратитесь к: http://www.mkyong.com/spring-mvc/spring-mvc-how-to-include-js-or-css-files-in-a-jsp-page/ – Rudy

Смежные вопросы