AngularJS (маршрутизация) не может найти шаблоны .html в проекте Maven SpringBoot в Eclipse - PullRequest
0 голосов
/ 19 мая 2019

Я изучаю AngularJS с помощью Spring Boot.Я создал проект SpringBoot и импортировал его в Eclipse, и без написания Java-кода я пытаюсь заставить внешний интерфейсный шаблон AngularJS работать с маршрутизацией.У меня есть необходимые угловые сценарии, включенные в проект, и я делаю все, как в учебниках на w3schools и на весеннем веб-сайте.Тот же код работает нормально, если я создаю очень простое приложение, использующее только HTML и JS, не используя IDE, но в Eclipse происходит сбой.

Каталог проекта в Eclipse:

-src/main/java
|-com.package
|---Application.java
|---ViewController.java
-src/main/resources
|---static
|-----app
|------app.module.js
|-----angular-route.min.js
|-----angular.min.js
|-----angular.min.js.map
|-----style.css
|---templates
|-----first.html
|-----index.html
|-----main.html
|-----second.html

Навигацияв index.html:

<body ng-app="app">
    <header class="header">
        <a ng-href="#/!">Main</a>
        <a ng-href="#!first">First</a>
    </header>   
    <div>   
        <ng-view></ng-view>         
    </div>
</body>

app.module.js

var app = angular.module('app', ['ngRoute']);

app.config(function($routeProvider) {
    $routeProvider
    .when('/', {
        template: 'main.html'
    })
    .when("/first", {
        templateUrl: "first.html"
    })
    .when('/second', {
        templateUrl: 'second.html'
    })
    .otherwise({redirectTo: '/'});
});

Как и в случае первого маршрута в app.config, он будет работать нормально в каждом случае, если я используюtemplate вместо templateUrl.

В случае каждого из шаблонов .html они содержат некоторый фиктивный код, например:

<p>first</p>

Когда я проверяю в dev-tools, на вкладке Network я вижу 404 какответ на запрос по шаблону.В консоли я вижу следующее сообщение об ошибке:

Error: "[$templateRequest:tpload] http://errors.angularjs.org/1.7.8/$templateRequest/tpload?p0=%2Fsrc%2Fmain%2Fresources%2Ftemplates%2Ffirst.html&p1=404&p2="

С веб-сайта AngularJS я узнал, что это означает, что с путём что-то не так.Я пытался изменить путь, как в "/first.html", "./first.html", "/templates/first.html", но результат был тот же.

Я не понимаю, в чем проблема.Любая помощь будет оценена.

РЕДАКТИРОВАТЬ: Я подумал, что было бы полезно добавить код для ViewController.java:

@Controller
public class ViewController {

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

}

Спасибо за любые предложения.

1 Ответ

0 голосов
/ 21 мая 2019

Все работало нормально - я имею в виду навигацию - как только я переместил все html-файлы в папку src / main / resource / static внутри проекта в Eclipse.

Итак, структура проекта должна быть такой:

-src/main/java
|-com.package
|--Application.java
|--ViewController.java
-src/main/resources
|-static
|--app
|----app.module.js
|--angular-route.min.js
|--angular.min.js
|--angular.min.js.map
|--first.html
|--index.html
|--main.html
|--second.html
|--style.css
|-templates
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...