0

我是 IntelliJ 的新手,我创建了一个运行配置来使用 intellij 调试我的 Web 应用程序。

我所做的是:

  1. 在 intellij 调试模式下运行我的应用程序,并看到服务器成功启动,html 文件正确呈现。
    1. 修改了一个java文件。
    2. 修改了一个html文件。
    3. 救了他们。
    4. 单击 intellij 窗口外的某处以触发热交换。
    5. 我看到弹出消息说只更新了 1 个文件(它是 java 文件)。

我发现的问题是:

  1. html 从未更新。

我注意到的是:

  1. java文件被重新编译并成功“热交换”。
    1. html 文件没有“热交换”:
      • 浏览器中的页面没有反映我所做的更改。
      • 即使我在浏览器中手动刷新网页,html 也没有更新。
      • 如果我只修改 IntelliJ 中的 html 文件,弹出窗口总是会说“加载的类是最新的。没有要上传的”。
    2. 但是我验证了html源改成功了,部署到炸开的war目录下的html文件也改成功了。
    3. 当我单击“重新部署”按钮时,我可以看到 html 得到更新。
    4. 我也尝试将 cachingAllowed="false" 添加到 tomcat context.xml 文件,但没有运气。

我的问题是:

  1. 如何使用 tomcat9 在 IntelliJ 中启用热插拔?(我错过了什么吗?)
    1. “热插拔”和“重新部署”有什么区别?

谢谢。

IntelliJ 版本:Ultimate 2018.1

Tomcat版本:apache-tomcat-9.0.7

没有更新

运行配置

4

1 回答 1

1
  • 回答

我在这里找到了答案: https ://intellij-support.jetbrains.com/hc/en-us/community/posts/115000004090-Updating-HTML-and-Resources-without-restarting-application-server-Tomcat-8 -Thymeleaf-3-Sparkjava-?page=1#community_comment_360000203964

  • Ulisses Silva 指出的原因:Thymeleaf 的 TemplateResolver 实现具有“可缓存”属性,默认属性为“true”。

  • 解决方案

将“cacheable”属性设置为 false,如下所示为您的 TemplateResolver 定义:

<property name="cacheable" value="false" />
于 2018-05-29T14:55:05.457 回答