我已经阅读了Hot swapping in Spring Boot,但没有找到对我有帮助的内容。
我在使用thymeleaf的嵌入式码头服务器上有一个spring-boot应用程序。我的应用程序将提供html,css,js(AngularJS)和REST服务。
文件夹结构如下:
/java
----
/resources
/static
/js
/css
/templates (html)
的pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
但是当我更改它们时,css / html / js并没有热部署。我每次都要重启服务器。 + bonus =当页面加载时它会锁定资源(js),甚至Ant脚本也无法替换它们。
我可以在任何地方设置scanIntervalSeconds吗?
- 编辑 -
Main.java
@Configuration
@ComponentScan
@EnableJpaRepositories
@EnableAutoConfiguration
@Import({RepositoryRestMvcConfiguration.class, PersistenceConfig.class, ThymeleafConfig.class})
public class Main {
public static void main(String[] args) throws Exception {
SpringApplication.run(Main.class, args);
}
}
我通过右键单击类和IDEA中的Debug来运行它。
答案 0 :(得分:5)
你是如何推出该应用程序的?如果您使用具有调试模式的IDE,它应该可用(除了我认为是Windows操作系统的锁定问题),或者如果您使用&#34; mvn spring-boot:run&#34;或&#34;启动它。 gradle bootRun&#34;。
答案 1 :(得分:2)
我使用NetBeans 8.0.1开发。 我修复了src / main / resources中没有重新加载静态资源的问题,比如css(在src / main / resources / resources / css中(是的,真的是两次&#34;资源&#34;!),html-thymeleaf-templates(在src / main / resources / templates中,采用以下方式:
只需运行自定义maven构建,即可在调试模式下启动webapp。 Thymeleaf-Templates中的更改(位于src / main / resources / templates中,例如index.html(不是.xhtml!))在浏览器重新加载时立即可见。
答案 2 :(得分:1)
如果将css和java脚本移动到下面的文件夹中 src / main / java / webapp它应该可以工作。
由于某些原因,src / main / java / resources下的资源在更改时似乎没有得到热部署。
要解决此问题,因为上面的帖子建议我添加了
spring.template.cache =假
spring.thymeleaf.cache =假 到资源文件夹中的Application.properties。
注意: 我还添加了这个
作为vm运行时参数。