2015-04-28 14 views
8

Próbowałem dodać przyrostek linii papilarnych do niektórych moich statycznych plików (Ex. App.min.js/style.min.css) używając ResourceResolvers i ResourceTransformers http://spring.io/blog/2014/07/24/spring-framework-4-1-handling-static-web-resourcesThymeleaf i zasoby statyczne z odcisków palców

mam config ResourceHandler w ten sposób:

@Configuration 
@EnableWebMvc 
public class ResourceResolverConfiguration extends WebMvcConfigurerAdapter { 

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("bower_components/**/*.js", "/assets/**", "/build/**") 
       .addResourceLocations("/bower_components/", "/assets/", "/build/","classpath:/META-INF/webapp/build/") 
       .resourceChain(true) 
       .addResolver(
         new VersionResourceResolver() 
          .addContentVersionStrategy("/**") 
         ); 
} 
} 

. W moim głównym kontrolerze dodałem kilka dzienników debugowania.

logger.debug("js = '{}'" + this.resourceUrlProvider.getForLookupPath("/build/app.js")); 
logger.debug("css = '{}'" + this.resourceUrlProvider.getForLookupPath("/build/styles/style.css")); 

Po uruchomieniu aplikacji internetowej, z dziennika debugowania, nie ma odcisków palców w każdym pliku jak

app-5d2c76ad6517f26d252d5cc93a4fc7d2.js

i mogę uzyskać dostęp do tego pliku bezpośrednio, (tj. Poprzez localhost: 8080/build/app-5d2c76ad6517f26d252d5cc93a4fc7d2.js)

Jednak po kliknięciu źródła widoku w przeglądarce internetowej nadal jest to oryginalny plik bez odcisku palca.

która w moim layout.html Ładuję skrypt/link w ten sposób.

<script th:src="@{/build/app.js}"></script> 
<link th:href="@{/build/styles/style.css}" rel="stylesheet"></link> 

Używam Thymeleaf do silnika szablonów. Co powinna zawierać konfiguracja lub kod, aby Thymeleaf zawierał pliki odcisków palców lub coś przegapiłem?

Dziękuję bardzo.

+0

Czy to zostało kiedykolwiek rozwiązane? – igracia

+0

Czy ktoś zna odpowiednią składnię prędkości? –

Odpowiedz

2

Upewnij się, że w tym odpowiedni filtr kodowania, który jest co składnia @{} używa do przepisywania adresów URL:

@Bean 
public ResourceUrlEncodingFilter resourceUrlEncodingFilter() { 
    return new ResourceUrlEncodingFilter(); 
} 
1

spróbować tego, aby uczynić linii papilarnych wraz z nazwą pliku

<script th:src="${@mvcResourceUrlProvider.getForLookupPath('/build/app.js')}" /> 

Powyższe wyniki:

<script src="/build/app-16e85c31092c68733df3c729b831dcfd.js"></script> 

Wiem, że jest późno, bu t Szukałem tej samej odpowiedzi na pytanie, jak renderować adresy URL do pracy z addContentVersionStrategy i pojawił się ten pomysł, więc mam nadzieję, że pomoże to komuś innemu.

Powiązane problemy