2016-09-08 53 views
0

Tomcat 8で動作するプロジェクトでEclipseを使用しています。私はSpring MVC + Thymeleafを使用しています。私はGradleにWARプラグインを持っているので、Javaクラスを変更するたびに自動的に新しいWARファイルを作成してtomcatに展開します。HTML変更のためにTomcatを再起動する必要があります

問題は、HTMLファイルを変更したときに、変更を確認するためにTomcatを再起動する必要があることです。 JSFで別のプロジェクトで起こっていないことがあります。もし私がxhtmlを変更すると、ブラウザをリフレッシュするだけで新しいものを見ることができます。

質問は、HTMLファイルまたはCSSファイルを変更するたびにTomcatを再起動する必要がありますか?それは私には意味をなさない。

+0

HTMLファイルがプロジェクトにどのように配置されているか調べることはできますか? HTMLファイルはさまざまな方法でリソースとして管理でき、多分問題の根本原因になる可能性があります。 – sphinks

+0

@sphinks私のHTMLファイルは、WebContent/WEB-INF/templatesの下に置かれます。 – angeldev

答えて

0

問題はThymeleafキャッシュでした。 setCacheableの設定で無効にすることができます。これは、Thymeleaf 3+のために有効です。

@Bean 
public ViewResolver viewResolver() { 
    ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); 
    viewResolver.setTemplateEngine(templateEngine()); 
    viewResolver.setCharacterEncoding(UTF8); 
    return viewResolver; 
} 

private TemplateEngine templateEngine() { 
    SpringTemplateEngine engine = new SpringTemplateEngine(); 
    engine.setEnableSpringELCompiler(true); 
    engine.setTemplateResolver(templateResolver()); 
    return engine; 
} 

private ITemplateResolver templateResolver() { 
    SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver(); 
    resolver.setApplicationContext(applicationContext); 
    resolver.setPrefix("/WEB-INF/templates/"); 
    resolver.setSuffix(".html"); 
    resolver.setTemplateMode(TemplateMode.HTML); 
    resolver.setCharacterEncoding("UTF-8"); 
    resolver.setCacheable(false); 
    return resolver; 
} 

私は春ブーツスレッドでこのanswerでこれを見つけました。

2

あなたはテンプレートエンジンを設定するときcachebleを無効にする必要があり

<bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver"> 
    ... 
    <property name="cacheable" value="false"/> 
</bean> 

これはあなた

+0

はい!問題は、Thymeleafキャッシュ、私はJavaの設定を購入していた。私はそれを投稿しました!ありがとう! – angeldev

+0

それはあなたのために働いてうれしい! –

0

のために働いていた場合、私に教えてくださいexploded warを試してみてください。 .warファイルを使用する場合は、すべての変更(私が知っているように)ごとに再デプロイする必要があります。

関連する問題