Невозможно обслужить статические ресурсы с пружиной, вместо этого получить индекс - PullRequest
0 голосов
/ 03 июня 2018

У меня есть простое веб-приложение Spring.

@Controller
public class GreetingController {

    @Autowired
    GreetingRepository repository;

    @GetMapping("/greeting")
    public String greetingForm(Model model) {
        model.addAttribute("greeting", new Greeting());
        return "greeting";
    }

    @PostMapping("/greeting")
    public String greetingSubmit(@ModelAttribute Greeting greeting) {
        repository.save(greeting);
        return "result";
    }

}

HTML-код:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head> 
    <title>Greeting Sample</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" th:href="@{/css/style.css}"/>
</head>
<body>
    <h1>Form</h1>
    <form action="#" th:action="@{/greeting}" th:object="${greeting}" method="post">
        <p>Id: <input type="text" th:field="*{id}" /></p>
        <p>Message: <input type="text" th:field="*{content}" /></p>
        <p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
    </form>
</body>
</html>

Это файл CSS, на который есть ссылка в HTML:

p {
    color: #ff5588;
}

Однако css не применяется.

Фактически, когда я запрашиваю localhost: 8080 / css / style.css, он возвращает HTML-содержимое страницы индекса.

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Возможно, это проблема с настройкой безопасности.Есть ли в вашем проекте реализация безопасности (SpringSecurity или custom)?Если да, имеет ли ваш пользователь доступ к /css/* url или этот URL имеет публичный доступ?Перенаправление может произойти, если у пользователя нет доступа к URL или возникла исключительная ситуация при обработке запроса.

0 голосов
/ 06 июня 2018

Конфигурация безопасности оказалась блокирующей все запросы к ресурсам.Вместо этого он перенаправлял эти запросы на страницу индекса (которая была настроена).

Решение оказалось простым: авторизовать все запросы к ресурсам сайта (/images/** и /css/** и/js/**).

После настройки веб-приложение работает должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...