为什么当我更改静态文件并重新加载页面时,Spring devtools 不起作用?



我正在使用依赖项作为:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>runtime</scope>
</dependency>

当我对.java文件进行更改时,devtools 工作正常,但当我对静态文件(.html 文件)进行更改时不起作用。此外,当我重新加载页面时,看不到更改。我必须重新启动应用程序才能看到更改。每次我进行一些小更改时,重新启动应用程序都是非常耗时的。

在 pom 的 spring-boot-maven-plugin 中.xml添加以下配置:

<configuration>
<addResources>true</addResources>
</configuration>

如果您从命令行启动应用程序,上述方法将起作用。但是,请参阅这篇文章以获取更多详细信息:使用Spring MVC和Boot刷新静态内容。

在 Spring Boot 3.1.2 中,在application-dev.properties中设置以下属性:

spring.web.resources.static-locations=file:src/main/resources/static/
spring.devtools.restart.additional-paths=file:src/main/resources/static/

我在开发配置文件中添加了这些配置,因为在生产环境中,静态内容将从类路径提供。请记住激活正确的配置文件。

它的作用:

  • 每当静态目录中发生更改时,Devtools 都会重新启动服务,并触发实时重新加载。它与实时重新加载浏览器扩展完美搭配。
  • 静态资源从文件系统而不是类路径提供。它允许提供最新的静态文件,而无需重新生成项目。这样,您就不需要将 IDE 配置为在每次保存时重新生成,这可能会有点慢,具体取决于项目。

我为使用 Vite 构建的 Web 项目设置了这个,(vite build --watch),并在 Spring Boot Devtools 中转储src/main/resources/static/所有输出几乎立即获取更改。

这个答案和我在这里写的一样 https://stackoverflow.com/a/76997426/8474661

最新更新