Я использую Spring boot 2.0.2 и Freemarker для своего веб-приложения.Статическое содержимое моего веб-приложения не загружается для вложенных / префиксных контроллеров.
Весь статический контент (изображения, CSS, js) находится под
/src/main/resources/static/js
/src/main/resources/static/images
/src/main/resources/static/css
Все отлично работает, если я используюэтот контроллер:
@RequestMapping(value = "/userProfile", method = RequestMethod.GET)
public ModelAndView getUser(@ModelAttribute("model") ModelAndView model,@RequestParam("userId") String userId) {
UserProfile userProfile = userService.findById(userId);
model.addObject("userProfile", userProfile);
model.setViewName("userDetails");
return model;
}
userDetails.ftl is located at /src/main/resources/templates/userDetails.ftl
Однако я вижу 404 статического содержимого (js / css / images) для этого контроллера при выполнении запроса GET из браузера.
https://localhost:8443/users/js/saveUser.js -- 404
(Please note "users" in the URL while trying to load static content)
@RequestMapping(value = "/user/profile", method = RequestMethod.GET)
public ModelAndView getUser(@ModelAttribute("model") ModelAndView model,@RequestParam("userId") String userId) {
UserProfile userProfile = userService.findById(userId);
model.addObject("userProfile", userProfile);
model.setViewName("userDetails");
return model;
}
Код представления
<link rel="stylesheet" type="text/css" href="css/homepage.css">
<link rel="stylesheet" type="text/css" href="css/user-profile-display.css">
<script type="text/javascript" src="js/saveUser.js}"></script>
<script type="text/javascript" src="js/authenticate.js}"></script>
Я рассмотрел следующие проблемы, но не могу найти решение, которое будет работать:
Какуказать префикс для всех контроллеров в Spring Boot?
spring boot: отделить REST от статического содержимого
Любая помощь приветствуется.