Spring Boot и Thymeleaf - "href" на другие сайты, на которых возникает ошибка 404 - PullRequest
0 голосов
/ 09 мая 2020

Я создал проект spring-boot-starter-thymeleaf версии 2.2.6-RELEASE с IntelliJ версии 2020.1. К сожалению, я не знаю, почему ссылки в шаблонах тимелеафа не относятся к следующим.

Когда я запускаю проект и набираю "localhost: 8080" в своем веб-браузере, индекс. html сайт видно. После нажатия на «href» внутри index. html веб-браузер показывает мне URL-адрес, например, «localhost: 8080 / product. html» с ошибкой 404.

Вот структура проекта: Структура проекта

Индекс. html файл здесь:

<!DOCTYPE html>

<html xmlns:th ="http://www.thymeleaf.org" lang="de">
<head>
    <meta charset="UTF-8">
    <title>Naturkost Warenmanagement</title>
    <link th:href="@{/stylesheet.css}" rel="stylesheet" />
</head>
<body>

<div id="container">
    <div id="header">
        <h1>Warenmanagement</h1>
        <h2>Geschenke und Naturkost</h2>
    </div>

    <div id="content">
        <div id="nav">
            <h3>Navigation</h3>

            <ul>

                <li><a th:href="@{/index.html}">Home</a></li>
                <li><a th:href="@{/product.html}">Artikel</a></li>
                <li><a th:href="@{/employee.html}">Mitarbeiter</a></li>
                <li><a th:href="@{/order.html}">Bestellung</a></li>
                <li><a th:href="@{/stockground.html}">Lager</a></li>
                <li><a th:href="@{/supplier.html}">Lieferant</a></li>
                <li><a th:href="@{/transaction.html}">Lager Transaktion</a></li>

            </ul>
        </div>
.
.
.
.

@ Controller NavigationController.class:

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

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

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

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

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

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

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

Что я здесь делаю не так?

1 Ответ

1 голос
/ 09 мая 2020

Удалите .html из действия:

<li><a th:href="@{/index.html}">Home</a></li>

И оставьте его как:

<li><a th:href="@{/index}">Home</a></li>

Теперь он будет go и попадет в API - localhost:8080/<action>

И соответствующий .html будет добавлен при загрузке Spring с помощью преобразователя представлений.

...