2016-06-14 3 views
1

Ich habe eine harte Zeit, herauszufinden, wie index.html zu erhalten Prozess in von Thymeleaf zu sein:Wie bekomme ich Thymeleaf zur Verarbeitung von HTML im statischen Ordner?

src/main/resources/static 

Thymeleaf funktioniert perfekt in dem Vorlagen-Verzeichnis ohne Konfiguration:

src/main/resources/templates 

Die Umgebung ist Spring Boot mit Maven. Es verwendet Yeoman, um die index.html, CSS und JS zu transpilieren. und ich brauche alle diese Dateien in der gleichen Verzeichnisstruktur.

IDK wenn diese genügend Informationen, aber unten ist mein ThymeleafConfig:

package org.jeremu.config; 

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.web.servlet.ViewResolver; 
import org.thymeleaf.spring4.SpringTemplateEngine; 
import org.thymeleaf.spring4.view.ThymeleafViewResolver; 
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver; 
import org.thymeleaf.templateresolver.ITemplateResolver; 

import java.util.HashSet; 
import java.util.Set; 

@Configuration 
public class ThymeleafConfig { 

    @Bean 
    public SpringTemplateEngine templateEngine() { 
     SpringTemplateEngine templateEngine = new SpringTemplateEngine(); 
     Set<ITemplateResolver> resolvers = new HashSet<ITemplateResolver>(); 
     resolvers.add(defaultWebTemplateResolver()); 
     resolvers.add(emailTemplateResolver()); 
     templateEngine.setTemplateResolvers(resolvers); 
     return templateEngine; 
    } 

    @Bean 
    public ClassLoaderTemplateResolver defaultWebTemplateResolver(){ 
     ClassLoaderTemplateResolver webTemplateResolver = new ClassLoaderTemplateResolver(); 
     webTemplateResolver.setPrefix("static/"); 
     webTemplateResolver.setSuffix(".html"); 
     webTemplateResolver.setTemplateMode("HTML5"); 
     webTemplateResolver.setCharacterEncoding("UTF-8"); 
     webTemplateResolver.setOrder(2); 
     return webTemplateResolver; 
    } 

    @Bean 
    public ClassLoaderTemplateResolver emailTemplateResolver(){ 
     ClassLoaderTemplateResolver emailTemplateResolver = new ClassLoaderTemplateResolver(); 
     emailTemplateResolver.setPrefix("templates/email/"); 
     emailTemplateResolver.setSuffix(".html"); 
     emailTemplateResolver.setTemplateMode("HTML5"); 
     emailTemplateResolver.setCharacterEncoding("UTF-8"); 
     emailTemplateResolver.setOrder(1); 

     return emailTemplateResolver; 
    } 

    @Bean 
    ViewResolver viewResolver(){ 
     ThymeleafViewResolver resolver = new ThymeleafViewResolver(); 
     resolver.setTemplateEngine(templateEngine()); 
     resolver.setOrder(1); 
     return resolver; 
    } 
} 
+0

FWIW Ich org verwenden. thymeleaf * thymeleaf-spring4 2.1.4.RELEASE, die standardmäßig mit Spring Boot Thymeleaf Starter »1.3.0.RELEASE –

Antwort

1

Versuchen Sie diese Einstellung in Ihrer application.properties Datei:

spring.thymeleaf.prefix=classpath:/static/ 
+0

Vielen Dank für die Antwort, aber leider hat das nicht für mich funktioniert. Ich habe versucht, spring.thymeleaf.prefix = classpath:/static/spring.thymeleaf.prefix = "Klassenpfad:/static /" spring.thymeleaf.prefix =/statisch/spring.thymeleaf.prefix = statisch –

+0

Hier ist ein komplettes funktionierendes Beispiel von Thymeleaf-Vorlagen werden von src/main/resources/static mit Spring Boot 1.3.0 verarbeitet https://github.com/kanderson450/stackoverflow-q37823580 –

+1

Oh wow ... es hat funktioniert! Ich hatte meinen IndexController zurück "" weiterleiten: /index.html ";" Wenn ich es in "Index" geändert habe, funktioniert es großartig! Ich danke dir sehr! –

Verwandte Themen