eclipse图片放在哪里-按项目类型选择对应资源目录
每次新建项目,最先犯愁的就是eclipse图片放在哪里,图一时省事就把图片文件直接拖到电脑桌面,写代码时引用本地绝对路径,当下运行看着正常,等把项目拷贝到其他设备上,页面里的图片立马全部消失,反复刷新、重启软件都没用,桌面还堆了一堆零散的图片文件,乱糟糟的看着就心烦。
直接塞进src文件夹试过。
src目录本就是专门存放Java源码的位置,eclipse运行项目时会自动编译这里面的文件,把java代码转换成class文件输出到bin目录里,图片这类静态文件跟着编译流程走,要么直接被过滤掉无法输出,要么编译后的文件路径发生偏移,根本没法正常读取。那段时间来回拖拽文件,一会把图片挪进src的子包,一会又挪回桌面,代码里的路径改了一遍又一遍,长串的路径字符看得眼睛发花,折腾大半天也没能让图片稳定显示,明明只是一个简单的存放问题,硬是被随手乱放的习惯搞得复杂无比。
后来学着身边人的做法,在普通Java项目根目录新建了resources文件夹,把所有图片统一转移进去,再右键将这个文件夹设置为源文件夹,做完这两步之后,不用大幅度修改原有引用代码,图片就稳稳加载出来了,这也是日常开发里最省事的一种存放方式。
单独建images子文件夹也常用。
在resources目录里面再新建一层images文件夹,专门收纳所有图片,项目里图片数量变多之后,分类存放的优势就显现出来了,不用在一堆文件里逐个翻找图片。不过小型项目完全没必要做多层目录划分,文件夹层级一多,代码里的引用路径就会跟着变长,但凡写错一个字符、漏掉一层目录,图片就会加载失败,我之前就因为多敲了一个文件夹名称,对着空白页面排查了许久,其实简单布局反而更不容易出错。
之前做动态Web项目的时候,犯过一个很典型的错误,把几张展示图片随手放进了WEB-INF文件夹,运行项目后浏览器始终无法加载图片,页面上只留下空白占位区域。慢慢摸索后才清楚,这个目录有着访问权限限制,外部浏览器是读取不到里面任何静态资源的,它只适合存放配置文件、编译后的类文件和依赖包,图片、网页、样式这类对外展示的内容,一律不能放在这里。
折腾好久才搞明白,Web项目和普通Java项目的存放规则完全不一样。
Web项目优先放WebContent目录。
传统版本的Eclipse动态Web项目,都会自带WebContent文件夹,新版工具改用了Maven标准结构,对应的目录变成src/main/webapp,这两个目录的作用一致,都是Web项目对外公开的资源根目录,图片、网页、脚本文件都可以直接放在这里,也能在里面再建images子目录做分类。引用的时候只用写相对路径就足够,千万别再使用电脑本地的绝对路径,我之前迁移项目时,就因为大量使用绝对路径,换了运行环境后所有图片全部失效,只能逐行修改代码里的路径地址,白白耗费了不少时间。
把最后一批图片按类别整理进对应文件夹,关掉项目目录窗口,伸手拿起桌边的水杯。