У меня есть приложение Sprint Boot Gradle, которое имеет следующую структуру: Снимок экрана структуры проекта
Структура проекта
/build.gradle
/src/main/resources/static/css/default.css
/src/main/java/com/expensalyze/ExpensalyzeApplication.java
/src/main/java/com/expensalyze/web/TagController.java
В основномУ меня есть файл CSS, расположенный по адресу src/main/resources/static/css/default.css
.Я ожидаю получить этот файл на http://localhost:8080/css/default.css
.
В соответствии с этой ссылкой , а также пружинными загрузочными документами , вышеуказанная настройка - это все, что нужно.Но я получаю 404, когда пытаюсь посетить http://localhost:8080/css/default.css
build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '2.0.2.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web:2.0.2.RELEASE')
}
ExpensalyzeApplication.java
@SpringBootApplication
@EnableWebMvc
@ComponentScan(basePackages = "com.expensalyze")
public class ExpensalyzeApplication {
public static void main(String[] args) {
SpringApplication.run(ExpensalyzeApplication.class, args);
}
}
TagController.java
@Controller
public class TagController {
@RequestMapping("/tag") // This works properly
@ResponseBody
String tag() {
return "tag";
}
}
- Я не добавил ни одного явного кода конфигурации сопоставления ресурсов.
- Мои сопоставления методов контроллера
Минимальный код для воспроизведения проблемы можно найти здесь в ветке static-res-test
.Вы можете запустить проект с помощью следующих шагов (требуется JDK 8):
$ ./gradlew clean build
$ java -jar build/libs/expensalyze.jar
Если вы посещаете http://localhost:8080/tag, он работает, но если вы посещаете http://localhost:8080/css/default.css, он не найден!
Чего мне не хватает?