【交流贴】关于web项目中,图片文件放置
大家早上好,有一个问题请教一下。
常常在开发中,我把一下项目中的图片文件存放到工程内部的一个文件夹内,然后在数据库中存放一个访问地址。但是时常出现的一个问题就是,当项目重新发布的时候,图片信息就丢失了。
期望的结果,希望把图片信息存放到一个新的位置,tomcat可以访问,但是与项目无关。这样怎么发布项目都不会丢失图片信息。现在的问题:图片是需要直接通过地址路径请求的,而不能像其他文件似的,通过java来读取。
现在想请教的问题:大家在项目开发中,文件信息如何存放?
谢谢啦~~
留言就有参与分~~~
------解决方案--------------------
我们项目中,图片一般直接放在Apache或EngineX上。
------解决方案--------------------我的是直接放在服务器上、、、你怎么发布项目、服务器img文件夹是不会变的!!!!!
------解决方案--------------------我不大明白“图片是需要直接通过地址路径请求的,而不能像其他文件似的,通过java来读取。”是什么意思。在jsp中,<img src="<%=pic %>" />应该是可以显示的吧??我们老师给讲的时候,说是要放到WEB-INFO底下,这样别人通过url就访问不到了。不过我之前参加的一个项目里面数据库中直接存图片,用到流什么的。这样的话,好像就不用考虑地址了吧。
------解决方案--------------------
稍微解释下,一般大系统部署,会用Apache或EngineX作为前置Web服务器,也就是这样的模型:
互联网接入路由 ---- 硬件负载均衡 ---- 前置Web服务器 ---- 中间件 ---- 数据库
J2EE中间件在处理纯文件访问的能力其实远低于Apache,所以一般我们将所有不需要权限保护的静态资源:图片、视频、音频、JS脚本、CSS样式文件、HTML静态文件(一般是静态化后的网页),全部都放在“前置Web服务器上”
要知道每一次的网页请求,可能涉及10~50次资源请求,但其实真正需要J2EE中间件处理的其实往往只有一个,就是那个JSP。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
一般是放工程目录下,也有放数据库的,
像我们这边开发环境是windows,而布署环境是linux,如果是保存到文件,考虑到权限的问题,放工程目录下好点。像以前我用的mac os 发布人员拿不到最高的root权限,改起来很麻烦。
------解决方案--------------------windows可以做个iis放文件
------解决方案--------------------用相对路径会丢失么。。。
------解决方案--------------------可以直接访问的静态文件,有条件的话可以考虑使用单独的域名和服务器,或者使用云存储。可以减轻主web服务器的负担,同时提高网页加载速度
------解决方案--------------------
------解决方案--------------------我刚做一个上传图片的东西,然后动态显示图片,你可以这样你先你可以访问到 那个图片的,只是你的图片路劲存在数据库里面的路劲不全,就是他只存了你那个放图片的文件夹名字和图片名字,没有存你jsp文件到你放图片文件夹的路劲,所以在你输出地址的时候,会出现图片丢失,所以你先到数据库里面查看存进去的地址是多少,然后比较jsp-->图片的路劲,看少了那些 ,然后你家族输出图片的地方 ,写死就可以了
咱就是这么干的!!!!!