解决Idea中Jetty热部署时无法更改JS
用IDEA开发web项目使用Jetty(maven插件/本地Jetty)跑的时候经常遇到项目启动后,无法编辑js文件和css文件。抱错如下:
问题出现在Jetty上,Jetty会使用内存映射文件来缓存静态文件,其中包括.js文件。在Windows下面,使用内存映射文件会导致文件被锁定。 解决方案是不使用内存映射文件来做缓存。
找到本地Jetty所在的jar目录,找到jetty-webapp-xxxxx.jar(xxxxx是版本号)。用压缩软件打开,找到目录:\org\eclipse\jetty\webapp 下的webdefault.xml,修改里面的内容,useFileMappedBuffer的值改为false,最后保存:
<init-param>
<param-name>useFileMappedBuffer</param-name>
<!-- true改为false -->
<param-value>false</param-value>
</init-param>
如果是使用maven的Jetty插件的话,可以找到maven目录相应的jetty.jar,然后更改方式和上面的一样,也可以可以通过pom文件修改Jetty配置:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.5.1.v20110908</version>
<configuration>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8088</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
<systemProperties>
<systemProperty>
<name>org.eclipse.jetty.util.URI.charset</name>
<value>UTF-8</value>
</systemProperty>
</systemProperties>
<webAppConfig>
<!-- 配置成我们自己的webdefault.xml -->
<defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
</webAppConfig>
</configuration>
</plugin>
版权声明
非特殊说明,本文由Zender原创或收集发布,欢迎转载。
ZENDER
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。