2017-01-09 2 views
3

ich eine Feder Projekt, wo ich die folgenden webjars in pom.xml enthalten:Spring MVC mit Thymeleaf + Bootstrap mit webjars

 <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>bootstrap</artifactId> 
      <version>3.3.7-1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.webjars</groupId> 
      <artifactId>jquery</artifactId> 
      <version>3.1.1</version> 
     </dependency> 

Dann habe ich in meinem html den folgenden Link und Skripte anzuzeigen enthalten:

<link rel="stylesheet" href="@{/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css}" /> 

    <script src="@{/webjars/jquery/3.1.1/jquery.min.js}"></script> 
    <script src="@{/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js}"></script> 

Aber es hat nicht funktioniert, findet keine Zuordnung:

[org.springframework.web.servlet.PageNotFound] (default task-15) No mapping found for HTTP request with URI [/TestPublicWeb-0.0.1-SNAPSHOT/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css] in DispatcherServlet with name 'testapp' 

... so I versucht, die folgende Abbildung in servlet.xml enthalten:

<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/> 

Aber mit diesem, Mapping für meine /TestApplication nicht gefunden wird:

[org.springframework.web.servlet.PageNotFound] (default task-13) No mapping found for HTTP request with URI [/TestApplication/] in DispatcherServlet with name 'testapp' 

Wie sollte auf eine korrekte Art webjars enthalten in sprinf Projekt?

Antwort

1

Ein paar Dinge, die mir einfielen, warum das oben genannte nicht für Sie funktioniert. Stellen Sie sicher, dass Sie den Spring Mvc-Namespace in Ihrer Datei servlet.xml verwenden. Sieht so etwas wie:

<bean xmlns:mvc="http://www.springframework.org/schema/mvc".... 

auch nicht sicher, warum Sie versuchen, Vermögenswerte @{..} mit zuzugreifen, wenn Sie den Classpath angegeben haben. Versuchen Sie, die @{..} Entfernung etwa so:

<link rel="stylesheet" href="/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css" /> 

<script src="/webjars/jquery/3.1.1/jquery.min.js"></script> 
<script src="/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js"></script> 
6

Das Problem ist, dass Sie den Standard-HTML-Tag href mit Thymeleaf Syntax @{} mischen. Ändern Sie es wie folgt:

<link rel="stylesheet" th:href="@{/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css}" /> 

<script th:src="@{/webjars/jquery/3.1.1/jquery.min.js}"></script> 
<script th:src="@{/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js}"></script> 

Und wenn Sie Spring Security verwenden, müssen Sie auch die Berechtigung zu Ihrem webjars im configure(HttpSecurity http) Methode wie angeben:

http.authorizeRequests().antMatchers("/webjars/**").permitAll(); 
Verwandte Themen