Maven+Jetty运行项目无法热修改html处理
2015-12-21 18:27
429 查看
一直以来都在做后端工程的开发,很少做前端设计,最近工作需要开始做前端开发,感觉“辛辛苦苦几十年,一朝回到解放前”的节奏啊,遇到不少问题,记录下来以备后查。
今天在使用Maven+Jetty运行JavaWeb工程时,发现无法在运行状态下修改JS、HTML文件,即无法热修改,网上搜了一下,整合了很多文章最终搞定。
现象
此时在Eclipse中修改index.html文件时
不允许进行修改。
原因:如果NIO被支持的话,Jetty会使用内存映射文件来缓存静态文件,其中包括.js文件。在Windows下,使用内存映射文件会导致文件被锁定。解决方案是不使用内存映射文件来做缓存。(摘自参考文章)
1.在你使用的Jetty版本的jetty.jar中找到webdefault.xml,它在jar文件中的路径是org/eclipse/jetty/webapp/webdefault.xml。把它拷贝到项目中,比如src/main/resources/webdefault.xml。
此处我们使用的Jetty Plugin版本为:8.1.8.v20121106,对应的Jetty在(注意:不同的Jetty版本位置可能不一样)
如果不知道Jetty在哪直接运行一下项目就能看到所用的Jetty版本(jetty7之前是一个jetty包,7之后拆分为了多个,我们要使用的文件在jetty-webapp下)
2.
3.
<defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
这样就在运行时也可以修改js和css了。
亲测通过
参考文章:
http://www.blogjava.net/liuyimx/articles/maven2-1.html
今天在使用Maven+Jetty运行JavaWeb工程时,发现无法在运行状态下修改JS、HTML文件,即无法热修改,网上搜了一下,整合了很多文章最终搞定。
现象
此时在Eclipse中修改index.html文件时
不允许进行修改。
原因:如果NIO被支持的话,Jetty会使用内存映射文件来缓存静态文件,其中包括.js文件。在Windows下,使用内存映射文件会导致文件被锁定。解决方案是不使用内存映射文件来做缓存。(摘自参考文章)
1.在你使用的Jetty版本的jetty.jar中找到webdefault.xml,它在jar文件中的路径是org/eclipse/jetty/webapp/webdefault.xml。把它拷贝到项目中,比如src/main/resources/webdefault.xml。
此处我们使用的Jetty Plugin版本为:8.1.8.v20121106,对应的Jetty在(注意:不同的Jetty版本位置可能不一样)
如果不知道Jetty在哪直接运行一下项目就能看到所用的Jetty版本(jetty7之前是一个jetty包,7之后拆分为了多个,我们要使用的文件在jetty-webapp下)
2.
找到useFileMappedBuffer参数,把值设成false
3.
在pom.xml中,设置jetty使用更新过的webdefault.xml文件。
<defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
这样就在运行时也可以修改js和css了。
亲测通过
参考文章:
http://www.blogjava.net/liuyimx/articles/maven2-1.html
相关文章推荐
- html获取屏幕宽度及其分辨率
- 鼠标点击html表格表头实现表格数据自定义排序
- html tabel colspan和rowspan
- html中的table
- Excel转为html
- html学习 - 自己主动跳转与自己主动刷新
- 酷毙的html标签编辑器
- 联合使用 HTML 5、地理定位 API
- HTML随手笔记,文字效果,新手望指点
- 手把手教你做html日历
- HTML <head>
- HTML 图像
- HTML 表格
- HTML 列表
- HTML <div> 和<span>
- html input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
- HTML 排版与标签(三)
- Angular HTML 编译器
- HTML中用list添加列表
- 使用HTMLParser提取新闻的例子