无法使用tomcat 9热切换Intellij中的html文件

时间:2018-05-17 16:05:38

标签: java intellij-idea tomcat9

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

我做的是:

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

    1. html从未更新。
    2. 我注意到的是:

      1. java文件被重新编译并且#34; hotswapped"成功。
        1. html文件不是" hotswapped":
          • 浏览器中的页面未反映我所做的更改。
          • html甚至没有更新,即使我在浏览器中手动刷新网页。
          • 如果我只修改IntelliJ中的html文件,弹出alwasy总是说"加载的类是最新的。无需上传"。
        2. 但我确认html源已成功更改,并且部署到爆炸的war目录的html文件也已成功更改。
        3. 当我点击"重新部署"按钮,然后我可以看到html得到更新。
        4. 我也尝试过添加cachingAllowed =" false"到tomcat context.xml文件,但没有运气。
      2. 我的问题是:

        1. 如何使用tomcat9在IntelliJ中启用hotswap? (我错过了什么吗?)
          1. " hotswap"有什么区别?和"重新部署"?
        2. 感谢。

          IntelliJ版本: 终极2018.1

          Tomcat版本: Apache的Tomcat的9.0.7

          no update

          run config

1 个答案:

答案 0 :(得分:0)

  • 答案

我在这里找到了答案: 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定义:

BendModifiers.js:57 Uncaught (in promise) TypeError: Cannot read property 'length' of undefined