我正在使用Spring MVC 3.2,Thymeleaf,Thymeleaf方言和Tomcat,每当我更改视图时,我都不想重新部署我的应用程序。正如其他人所建议的那样:
<property name="cacheable" value="false"/>
在模板解析器中,但它不起作用。 完全重载(CTRL + F5)也没有效果。
这是我完整的Thymeleaf配置:
<!-- Thymeleaf template engine -->
<bean id="templateResolver"
class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/templates/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML5" />
<property name="cacheable" value="false"/>
</bean>
<bean id="templateEngine"
class="org.thymeleaf.spring3.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
<!-- These lines add the dialect to Thymeleaf -->
<property name="additionalDialects">
<set>
<bean class="nz.net.ultraq.thymeleaf.LayoutDialect"/>
</set>
</property>
</bean>
<bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine" />
</bean>
我还能采取其他措施来解决这个问题吗?
答案 0 :(得分:2)
这取决于许多事情,主要取决于您在何处以及如何更新视图。如果您使用的是IDE(Netbeans或Eclipse),它主要取决于IDE本身和部署过程。
磁盘上的当前组织:
源目录=&gt; [on build] =&gt;目标或构建目录=&gt; [on deploy] =&gt; tomcat目录
但IDE经常试图使开发人员友好,并且可能发生目标目录和tomcat目录是相同的。但它也可能取决于IDE及其配置。 此外,当您在源webapp下保存文件时,IDE 可能会自动将它们复制到目标。
但Thymeleaf配置的<property name="cacheable" value="false"/>
无法保证这一点。所有它保证的是,如果在tomcat目录中更改模板,下一个请求将使用它。
因此,为了确定问题的确切位置,您必须找到tomcat实际获取模板的位置以及这些模板是否已修改。
(我甚至没有谈过浏览器缓存......)
答案 1 :(得分:0)
在Tomcat&#34;服务器选项&#34;中,选中&#34;服务模块而不发布&#34;为我做了诀窍。