在windows环境中开发,当使用jetty作为容器时,可能会发生修改js、css文件而没有生效,甚至报错的情况。
产生原因
这是因为jetty会使用内存映射文件来缓存静态文件,其中就包括js、css文件。而在windows下,使用内存映射文件会导致文件被锁定。
解决方法
解决方法很简单,只需要再web.xml文件中配置相应的静态文件不使用内存映射文件来缓存即可:
<!--配置使windows下的jetty不锁定文件-->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>default</servlet-name>
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>
</servlet>