解决jetty无法保存js和css文件

最近刚接触IDEA编辑器进行开发,后端项目是用jetty部署的,作为一个前端在编辑js文件运行的时候就遇到了新的问题,使用ctrl+s无法快捷保存文件,并且浏览器中加载的文件还是旧的,问题描述如下:

image.png

原因:
jetty本身的问题,如果NIO被支持的话,Jetty会使用内存映射文件来缓存静态文件,其中包括.js文件。在Windows下面,使用内存映射文件会导致文件被锁定。
解决办法:
修改maven本地仓库的org/eclipse/jetty/jetty-webapp/下,找到对应版本的jetty插件修改webdefault.xml即可

  • step1:如何找到maven本地仓库
    默认情况下,Maven本地库为系统当前用户目录下的.m2文件夹下,缺省路径为:${user.home}/.m2/repository
    可以在命令行运行:mvn help:effective-settings:
image.png

其中黄色框圈出的<localRepository>标签中的即是
也可以查看项目的Run/Debug Configurations -> General -> local repository

  • step2:修改org/eclipse/jetty/jetty-webapp/目录下对应版本的jetty文件的webdefault.xml文件
    webdefault.xml一般存在于如下黄框圈出的jar包中,使用winrar可以打开并编辑
image.png

修改jetty jar里面的 webdefault.xml 的useFileMappedBuffer为false即可搞定!

   <init-param>
       <param-name>useFileMappedBuffer</param-name>
       <param-value>false</param-value>
   </init-param>
   ```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容