小编典典

Spring Boot devtools-静态内容重新加载在IntelliJ中不起作用

spring-boot

在构建第一个Spring Boot应用程序时,我发现每次对/resources/static/some-
file.js中的Javascript文件进行更改时,都需要重新启动应用程序

这非常耗时。

当我将文件移动到/ webapps /文件夹时,它可以按预期工作,但是文件未打包在JAR中。文档中提到了这一点,所以我无法继续这种方式。

我已经阅读了所有有关的内容spring-boot- devtools,并已将其安装在我的POM中,但是热插拔无法正常工作。我仍然需要重新启动整个应用程序才能看到Javascript或CSS文件更改。

当应用启动时,我可以看到该行LiveReload server is running on port 35729,因此spring-boot- devtools必须做点什么…

进一步调查出了什么问题的步骤是什么?

我的猜测是,当IntelliJ运行该应用程序时,文件会被复制,因此当我进行更改时,实际上是在更改原始文件,而不是正在运行的应用程序使用的文件。

PS:我将Maven,IntelliJ IDEA 15和Spring Boot
1.3.3与嵌入式Tomcat服务器一起使用。我不确定IntelliJ运行什么命令来启动应用程序。IDE正在“自动”处理此问题。也许我需要更改运行配置?


阅读 351

收藏
2020-05-30

共1个答案

小编典典

您需要打开IntelliJ中的几个功能才能使其工作。

首先,有一个特定于项目的设置,您需要将其应用于要在其中使用devtools的任何项目。转到“首选项”>“编译器”并启用“自动创建项目”。

下一个设置是适用于所有项目的IDEA注册表设置。

  • 在macOS(OSX)中,按Shift+Command+AShift+Ctrl+A在Windows中
  • 在出现的搜索框中键入“注册表”,然后选择要打开的注册表。
  • 查找 runtime.appmake.automake.allow.when.app.running 并启用它。

之后,重新启动您的应用程序。您会注意到,您所做的每一个更改都会使项目不断重建。在浏览器中签出结果时,您将看到静态文件和代码均已更新。

2020-05-30