无法使用 tomcat 9 在 Intellij 中热交换 html 文件
unable to hotswap html file in Intellij with tomcat 9
我是 IntelliJ 的新手,我创建了一个 运行 配置来调试我的
使用 intellij 的 Web 应用程序。
我做的是:
- 运行 我的应用程序在 intellij 调试模式下,看到服务器成功启动,html 文件正确呈现。
- 修改了一个 java 文件。
- 修改了一个 html 文件。
- 救了他们。
- 点击 intellij 之外的某处 window 触发热交换。
- 我看到消息弹出,说只更新了 1 个文件(是 java 文件)。
我发现的问题是:
- html 从未更新过。
我注意到的是:
- java 文件已重新编译,"hotswapped" 成功。
- html 文件不是 "hotswapped":
- 浏览器中的页面没有反映我所做的更改。
- html在浏览器中手动刷新网页也没有更新
- 如果我在 IntelliJ 中只修改 html 文件,弹出总是会说 "loaded classes are up to date. Nothing to upload".
- 但我验证了 html 源已成功更改,部署到展开的 war 目录的 html 文件也已成功更改。
- 当我单击 "redeploy" 按钮时,我可以看到 html 得到更新。
- 我也试过将 cachingAllowed="false" 添加到 tomcat context.xml 文件,但没有成功。
我的问题是:
- 如何使用 tomcat9 在 IntelliJ 中启用热交换?
(我错过了什么吗?)
- "hotswap"和"redeploy"有什么区别?
谢谢。
IntelliJ 版本:
终极版 2018.1
Tomcat版本:
阿帕奇-tomcat-9.0.7
- 回答
原因
正如 Ulisses Silva 指出的那样:Thymeleaf 的 TemplateResolver 实现有一个 "cacheable" 属性,其中 "true" 作为默认属性。
解决方案
将 "cacheable" 属性设置为 false,如下所示到您的 TemplateResolver 定义:
<property name="cacheable" value="false" />
我是 IntelliJ 的新手,我创建了一个 运行 配置来调试我的 使用 intellij 的 Web 应用程序。
我做的是:
- 运行 我的应用程序在 intellij 调试模式下,看到服务器成功启动,html 文件正确呈现。
- 修改了一个 java 文件。
- 修改了一个 html 文件。
- 救了他们。
- 点击 intellij 之外的某处 window 触发热交换。
- 我看到消息弹出,说只更新了 1 个文件(是 java 文件)。
我发现的问题是:
- html 从未更新过。
我注意到的是:
- java 文件已重新编译,"hotswapped" 成功。
- html 文件不是 "hotswapped":
- 浏览器中的页面没有反映我所做的更改。
- html在浏览器中手动刷新网页也没有更新
- 如果我在 IntelliJ 中只修改 html 文件,弹出总是会说 "loaded classes are up to date. Nothing to upload".
- 但我验证了 html 源已成功更改,部署到展开的 war 目录的 html 文件也已成功更改。
- 当我单击 "redeploy" 按钮时,我可以看到 html 得到更新。
- 我也试过将 cachingAllowed="false" 添加到 tomcat context.xml 文件,但没有成功。
- html 文件不是 "hotswapped":
我的问题是:
- 如何使用 tomcat9 在 IntelliJ 中启用热交换?
(我错过了什么吗?)
- "hotswap"和"redeploy"有什么区别?
谢谢。
IntelliJ 版本: 终极版 2018.1
Tomcat版本: 阿帕奇-tomcat-9.0.7
- 回答
原因 正如 Ulisses Silva 指出的那样:Thymeleaf 的 TemplateResolver 实现有一个 "cacheable" 属性,其中 "true" 作为默认属性。
解决方案
将 "cacheable" 属性设置为 false,如下所示到您的 TemplateResolver 定义:
<property name="cacheable" value="false" />