【问题标题】:unable to hotswap html file in Intellij with tomcat 9无法使用 tomcat 9 在 Intellij 中热交换 html 文件
【发布时间】:2018-05-17 16:05:38
【问题描述】:

我是 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. 如何在 IntelliJ 中使用 tomcat9 启用热插拔? (我错过了什么吗?)
    1. “热插拔”和“重新部署”有什么区别?

谢谢。

IntelliJ 版本: 终极2018.1

Tomcat 版本: apache-tomcat-9.0.7

【问题讨论】:

标签: java intellij-idea tomcat9


【解决方案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”。

  • 解决方案

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

<property name="cacheable" value="false" />

【讨论】:

    猜你喜欢
    • 2013-08-31
    • 2018-08-17
    • 2015-06-20
    • 2017-01-28
    • 2023-01-18
    • 2016-04-23
    • 1970-01-01
    • 2015-11-30
    • 2018-11-17
    相关资源
    最近更新 更多