Problem z bootstrap w aplikacji Spring

0

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());
    }
0

Spróbuj wrzucić Bootstrap'a przez cdn, ostatnio miałem taki sam problem, że nie chciało załadować ze ścieżki a przy użyciu cdn poszło jak złoto.

0

Używasz ścieżki względnej href="css/bootstrap.min.css", a powinieneś bezwględnej, ze slashem na początku.

0

Przejrzyj loga ze springa w trybie VERBOSE czy coś takiego i zobacz, jakie wywołania robi przeglądarka. Pewnie masz jakieś nieprawidłowe wywołania, których nie obsługuje serwer. Albo użyj HttpFoxa, albo Fiddlera do tego samego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1