idea热部署静态资源无法及时生效

本文介绍如何在IntelliJ IDEA中配置热更新功能,使得在修改JS或JSP文件后无需重启服务器即可看到效果。通过调整Tomcat设置及部署配置,实现资源文件的实时更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Idea-每次修改JS文件都需要重启Idea才能生效解决方法

最近开始使用Idea,有些地方的确比eclipse方便。但是我发现工程每次修改JS或者是JSP页面后,并没有生效,每次修改都需要重启一次Tomcat这样的确不方便。我想Idea肯定有设置的方法,不可能有这么不方便的功能存在。

需要在Tomcat的设置中为:

 

 

 

 

技术分享

on ‘update‘ action:当用户主动执行更新的时候更新    快捷键:Ctrl + F9

on frame deactication:在编辑窗口失去焦点的时候更新

你可以根据自己的需求进行设置,我这里两个都有设置。

 


 

如果你的工程中没有 Update classes and resources 这个选项,只有如下选项那么请接着往下看,因为我开始也是这样的,在这种情况下你更新后只能更新classes文件中的变动,并不能更新静态文件中的变动。

技术分享

 

出现这种选项情况的原因是因为你在Deployment的选项中使用的是先将工程打成war包然后再去运行的。

技术分享

 

修改方式:

先remove当前工程,再次添加,添加的时候选择Artiface

技术分享

然后选择工程名称后面有 exploded的选项

技术分享

注意:

  选择后记的填写Application context

  然后在Server中更改为:Update classes and resources

 

___:war exploded 
  展开部署(相当于将资源文件进行展开后进行部署)
___:war
  发布模式,这是先打成war包,再部署

### 解决 IntelliJ IDEA 中 Tomcat 热部署生效的问题 在开发过程中,Tomcat 的热部署功能可以显著提高开发效率。然而,在某些情况下,热部署可能无法正常工作。以下是可能导致此问题的原因及解决方案: #### 1. 检查项目的编译设置 确保 IntelliJ IDEA 的自动编译功能已启用。可以通过以下步骤检查: - 打开 **Settings**(或 **Preferences**)。 - 导航到 **Build, Execution, Deployment > Compiler**。 - 确保勾选了 **Build project automatically**[^3]。 此外,可以通过快捷键 `Ctrl + F9` 或 `Cmd + F9` 手动触发增量编译。 #### 2. 配置 Tomcat 的更新选项 在 IntelliJ IDEA 的运行配置中,检查 Tomcat 的更新选项是否正确设置: - 在 **Run/Debug Configurations** 中,选择你的 Tomcat 配置。 - 转到 **Deployment** 标签页。 - 确保选择了 **Update classes and resources** 或 **Redeploy application**[^4]。 #### 3. 修改 Tomcat 的连接器配置 有时,默认的 Tomcat 配置可能会导致热部署失败。可以通过修改 `server.xml` 文件中的连接器配置来解决问题。例如,添加以下属性以避免连接重置问题: ```xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" maxSwallowSize="-1" /> ``` 此处的 `maxSwallowSize="-1"` 表示不限制请求体大小,防止因数据传输问题导致的连接中断[^1]。 #### 4. 使用嵌入式 Tomcat 的场景 如果项目使用的是嵌入式 Tomcat,可以自定义 `TomcatEmbeddedServletContainerFactory` 来调整相关配置。例如: ```java import org.apache.catalina.connector.Connector; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class TomcatConfig { @Bean public TomcatServletWebServerFactory tomcatEmbedded() { return new TomcatServletWebServerFactory() { @Override protected void customizeConnector(Connector connector) { super.customizeConnector(connector); connector.setProperty("maxSwallowSize", "-1"); } }; } } ``` 上述代码通过设置 `maxSwallowSize` 属性,解决了潜在的连接重置问题[^1]。 #### 5. Maven 项目构建问题 确保项目的依赖和插件配置正确。例如,运行以下命令以重新打包项目: ```bash mvn clean package ``` 这将清理旧的构建文件并生成新的 JAR 文件。如果构建成功,输出日志应类似于以下内容: ``` [INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar [INFO] BUILD SUCCESS ``` 确保生成的 JAR 文件包含最新的类和资源文件[^2]。 #### 6. 检查代码更改的范围 热部署仅适用于部分代码更改。以下情况可能需要重启应用: - 修改了 Spring Bean 的定义。 - 更改了静态资源文件(如 HTML、CSS、JavaScript)。 - 添加或删除了类文件。 对于这些情况,建议使用 Spring Boot DevTools 插件,它提供了更强大的热部署功能。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值