Подтвердить что ты не робот

Где место static css файл в проекте spring -boot

В моем текущем проекте spring -boot мои представления имеют следующую строку:

<link href="signin.css" rel="stylesheet"/>

для ссылки на статический файл css. Когда я запускаю проект и получаю доступ к одному из представлений, ссылающихся на этот файл, я получаю 404 не найденную ошибку или 403 несанкционированную ошибку, в зависимости от того, где я помещаю файл внутри проекта.

Я пробую это до сих пор:

src/main/resources/static/css (with this, I use css/signin.css instead of signin.css)

src/main/resources/templates/static/css (with this, I use css/signin.css instead of signin.css)

src/src/main/resources/templates/acesso (same folder of the html file)

какое место следует хранить в этом типе файлов?

4b9b3361

Ответ 1

Любое место ниже src/main/resources/static является подходящим местом для статического контента, такого как CSS, JavaScript и изображения. Статический каталог обслуживается от /. Например, src/main/resources/static/signin.css будет обслуживаться от /signin.css, тогда как src/main/resources/static/css/signin.css будет обслуживаться с /css/signin.css.

Папка src/main/resources/templates предназначена для просмотра шаблонов, которые будут преобразованы в HTML с помощью механизма шаблонов, таких как Thymeleaf, Freemarker или Velocity и т.д. Вы не должны размещать статический контент в этом каталоге.

Также убедитесь, что вы не использовали @EnableWebMvc в своем приложении, так как это отключит Spring Автонастройка загрузки Spring MVC.

Ответ 2

Я обнаружил, что если я поставлю свой signin.css под src/main/resources/META-INF/resources/static/css/signin.css, тогда я мог бы получить к нему доступ, используя /css/signin.css

Не знаю, почему.

Ответ 3

В моем случае для ссылки на файлы внутри css и js-папок, например:

<script src="js/bootstrap.min.js"></script>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/carousel.css" rel="stylesheet">

Мне пришлось поместить папки в папку webapp. У меня есть следующая структура папок:

Myapp

-src
     -main
           -java
           -resources
                    -static
                    -templates
           -webapp
                  -resources
                  -WEB-INF

Я имею в виду, если бы я разместил папки css и js в папке ресурсов (в основном), это было бы:

<link href="../resources/css/carousel.css" rel="stylesheet">
<link href="../resources/css/bootstrap.min.css" rel="stylesheet">
<script src="../resources/js/bootstrap.min.js"></script>

Если я поместил их в статическую папку (под ресурсами), это не сработает.

Ответ 4

Отключение @EnableWebMvc помогло мне решить проблему.