Witam mam problem z stylami bootstrap w aplikacji springowej. Na niektórych podstronach style działają prawie dobrze tzn np inputy są ładnie wystylizowane ale za to siatka bootstrapa już nie działa, na niektórych podstronach menu też działa prawie dobrze ma odpowiedni kolor ale za to styl ułożenia już nie jest poprawny a są podstrony na których wcale nie ma żadnych styli ani menu ani zawartość podstrony. Główny szablon znajduje się w layout/default.html i ten plik wygląda tak.
<!DOCTYPE html>
<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
<link type="text/css" href="css/bootstrap.min.css" rel="stylesheet" />
<title>Default</title>
</head>
<body>
<nav class="navbar navbar-toggleable-md navbar-inverse fixed-top bg-inverse">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
data-target="#navbarsExampleDefault" aria-controls="navbarsExampleDefault" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="/">superengine.pl</a>
<div class="collapse navbar-collapse" id="navbarsMenu">
<ul class="navbar-nav mr-auto">
<li class="nav-item" sec:authorize="isAnonymous()">
<a class="nav-link" href="/register">Register</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/add/item/category" sec:authorize="isAuthenticated()">Add new item</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="http://example.com" id="category" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">Category item</a>
<div class="dropdown-menu" aria-labelledby="category">
<a class="dropdown-item" href="/list_item/car">Car</a>
<a class="dropdown-item" href="#">Motorcycle</a>
<a class="dropdown-item" href="#">Boat</a>
</div>
</li>
<li class="nav-item" sec:authorize="isAuthenticated()">
<a class="nav-link" href="/myaccount" >My account</a>
</li>
</ul>
<div style="color: aliceblue" sec:authorize="isAuthenticated()">
Hello <b sec:authentication="name"/> role
<span sec:authentication="authorities"/>
-
<form th:action="@{/logout}" method="post"
style="display: inline-block">
<input type="submit" value="Logout"/>
</form>
</div>
</div>
</nav>
<section layout:fragment="content">
<p>Page content goes here</p>
</section>
<footer>
<p>superengine.pl 2017 ©</p>
</footer>
<!--<script src="js/jquery.js"></script>-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
Taką mam strukturę plików
https://zapodaj.net/33aacc8f22599.png.html
Template resolver
@Bean
public ViewResolver viewResolver() {
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setTemplateMode("XHTML");
templateResolver.setPrefix("views/");
templateResolver.setSuffix(".html");
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setTemplateResolver(templateResolver);
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(engine);
return viewResolver;
}
a tu konfiguracja Spring Security
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.formLogin()
.loginPage("/")
.defaultSuccessUrl("/myaccount")
.and()
.httpBasic()
.and()
.authorizeRequests()
.antMatchers("css/**",
"/js/**",
"/img/**",
"/**/favicon.ico",
"/webjars/**",
"/signup/**",
"/signin/**",
"/list_item/**").permitAll()
.and()
.authorizeRequests()
.antMatchers("/myaccount/**", "/add/**", "settings/**").authenticated()
.and()
.authorizeRequests()
.antMatchers("/", "/register").anonymous()
.and()
.logout().permitAll().invalidateHttpSession(true).deleteCookies("JSESSIONID")
.and()
.rememberMe().key("secret-key").rememberMeParameter("remember-me").tokenValiditySeconds(3600)
.and()
.sessionManagement().maximumSessions(1).maxSessionsPreventsLogin(false).expiredUrl("/?logout")
.sessionRegistry(sesionRegistry());
}