вложенное отображение в Spring Boot не загружает статический контент - PullRequest
0 голосов
/ 26 сентября 2019

Так что это мой HTML-файл:

getPass.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <link rel="shortcut icon" type="image/jpg" href="../static/image/PUB_PIX_LION_K.jpg"
          th:href="@{image/PUB_PIX_LION_K.jpg}">
    <link href="../static/css/style.css"  th:href="@{css/style.css}" rel="stylesheet" media="screen"/>

    <title>PP-Secure</title>
</head>

<body>
<div class="wrapper-notification">

    <h3>Password:</h3>
    <p th:text="${dispPass}"></p>
    <p th:text="${dispError}"></p>

</div>
</body>
</html>

И это мой контроллер:

    @RequestMapping("password/link/{enterId}")
    public ModelAndView getPasswordById(@PathVariable("enterId") UUID uuid) {
        ModelAndView mv = new ModelAndView();

        if(passwordService.hasKey(uuid)) {
            String passText = passwordService.getPassTextById(uuid).getPassText();
            mv.addObject("dispPass",passText);
            mv.setViewName("getPass");
        } else {
            String error = "No password available.";
            mv.addObject("dispError",error);
            mv.setViewName("getPass");
        }

        passwordService.removePasswordAfterVisit(uuid);

        return mv;
    }

Проблема заключается в том, когда я использую этот URL(Аргумент вышеупомянутого @RequestMapping ()) html-страница не использует ни .css (стиль), ни .jpg (логотип на вкладке браузера), поэтому я попробовал все и, наконец, написал тестовое сопоставление:

    @GetMapping("test")
    public String showGetPass(){
        return "getPass";
    }

И с localhost все в порядке: 8080 / test, я имею в виду, что логотип отображается на вкладке браузера, а стили - из .css

Поэтому мое быстрое решение состояло в том, что я упаковал весь свой файл .css в <style></style> тег в getPass.html ... но мне было любопытно узнать:

Есть ли проблемы с использованием UUID в качестве конечной точки URL-адреса для запроса на получение?Я имею в виду, это создает проблему для связывания CSS-файла в HTML-файле?

ОБНОВЛЕНИЕ: Это работает, когда я удалил password/link/ в @RequestMapping, но что не так с xzy / jkj / {id}

1 Ответ

0 голосов
/ 27 сентября 2019

Решено!

единственное, что мне было нужно, это / !!!!за css: th:href="@{css/style.css}" так th:href="@{/css/style.css}"

Почему на земле это имеет значение между @GetMapping("xxx") и @GetMapping("nested/xxx") ... !!!!

...