eclipse 为什么当我更改静态文件并重新加载页面时spring devtools不工作?

guykilcj  于 2023-10-18  发布在  Eclipse
关注(0)|答案(2)|浏览(174)

我使用依赖项作为:

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

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

jbose2ul

jbose2ul1#

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

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

如果您从命令行启动应用程序,则上述操作将有效。然而,请参阅这篇文章了解更多细节:Refreshing static content with Spring MVC and Boot

hgc7kmma

hgc7kmma2#

使用Sping 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将在静态目录发生更改时重新启动服务并触发实时重新加载。它与live-reload浏览器扩展搭配得很好。
  • 静态资源是从文件系统而不是类路径提供的。它允许提供最新的静态文件,而无需重新构建项目。这样你就不需要配置你的IDE在每次保存时重建,这可能会有点慢,这取决于项目。

我为一个使用Vite(vite build --watch)构建的Web项目设置了这个,并将所有输出转储到src/main/resources/static/ Sping Boot Devtools几乎立即就可以获取更改。
这个答案和我在这里写的https://stackoverflow.com/a/76997426/8474661一样

相关问题