除非我们重新部署war文件,否则Js更改不会反映在浏览器中

时间:2016-01-28 09:46:29

标签: javascript java tomcat intellij-idea spring-boot

我使用IntelliJ开发了一个Spring Boot Web应用程序。对于每个Js和html更改,我必须重新部署war文件,以便在浏览器上反映出更改。有没有办法在没有重新部署的情况下反映这些变化?

3 个答案:

答案 0 :(得分:0)

您可以实现像nginx这样的实时缓存。为css和ui相关的更改创建单独的项目并链接到nginx的assets文件夹。然后你必须启动该nginx服务器。因此,当您对文件进行更改时,无需一次又一次地重新启动服务器。 有关详细信息https://www.nginx.com/blog/scaling-web-applications-nginx-part-ii-caching-monitoring/#caching

答案 1 :(得分:0)

自动更新浏览器代码的最简单方法是将Gruntwatchlivereload一起使用。将更改保存到文件时,它将自动推送到浏览器。不需要浏览器插件。

以下plunk演示了最基本的用法。将文件放入任何目录,然后运行

npm install -g grunt-cli
npm install
grunt serve

它将启动一个为index.html提供服务的web服务器(连接)。对index.html所做的任何更改都将自动发送到浏览器。 Connect还配置为将对/api/的任何请求中继到另一个HTTP服务器(通常是您的本地Jetty实例)。

我添加了一个典型配置,您可以在app/scripts下放置JavaScript,在app/styles下放置CSS,在app/images下放置图片。任何这些更新也将被推送到浏览器。

答案 2 :(得分:0)

如果您使用的是springboot版本> = 1.3,则可以使用包含嵌入式liveReload服务器的spring-boot-devtools模块。从那里你需要的是一个支持liveReload扩展的浏览器。

Maven POM

<dependencies>
 <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
 </dependency>
</dependencies>

摇篮

dependencies {
    compile("org.springframework.boot:spring-boot-devtools")
}