java web项目中有很多的图片,如何存放?

一个java web项目会加载很多的图片,假如放在项目的webroot下的images下,当图片有很多,是否会影响项目的运行速度?同时假如放在项目下的一个文件夹里面,假如项目被损坏了,是否那些图片也可能丢失,那么一般有很多图片需要加载,图片会存放在什么地方更安全?

一般有两种情况,
一种是前端开发需要显示的图片,这个是页面构成必须的元素,一般这些会做 动静分离,后台接口 跟 前端资源会部署在不同的服务器上,有不同的优化,一般会有转发的服务器,判断是后台接口,就转发到后台的服务器,如果是前端资源,就转发到前台的服务器。一般情况下,前端服务器,跟后台的服务器,是分离开的,有不同的人去管理,如果项目小的话,可能就全放在一个。这个优化的化,你可以去了解下 CDN原理。这个是用来优化静态资源加载情况的。
另一种情况是,显示的图片,不是前端构成的,是用户上传文件产生的,这种情况下,现在一般有专门的对象存储,用过 七牛云,跟阿里的。这个的逻辑是文件上传的时候,不是上传到我们自己的服务器,上传到专门的云服务器,我们自己数据库只需要保存这些上传文件的地址,真正使用的时候,把连接给前端,前端自动会根据内容到专门的云服务器上去获取。所有的安全,优化,带宽,缓存命中,这些都有由云服务器去保证。 简单来说,只有有钱,这些东西根本不会成为你项目的瓶颈。
作为技术,我们讨论的应该不是这些。图片会做备份,这个可以有专门的磁盘阵列去实现,简单来说,就是上传的内容保存到磁盘的时候,会自动多保存几个备份到不同的磁盘上。还是那句话,多去了解下CDN的原理,最后这段,个人理解,不一定对。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-02
放在服务器静态目录中就可以了,然后在tomcat的配置中设置虚拟路径映射过去就ok
第2个回答  2018-03-02
如果你的网站很大像淘宝这样。那么图片会很多全部让主服务器会很影响效率。一般的做法是静态资源有专门的服务器进行处理。而主服务器进行动态资源的处理。通俗讲就是将图片放在一个专门的服务器你在你的web项目中可以引用。比如你的图片都放在服务器1,主程序代码放在服务器2,这时用户访问你的主页时,主页上的图片可以从服务器1加载后由服务器2响应到浏览器。
第3个回答  推荐于2018-03-03
一般就是为图片资源单独建立一个图片服务器,一来保护资源,二来可以加快访问速度本回答被网友采纳
第4个回答  2018-03-02

    文件较多时,可以新建对应的模块目录,每个模块下新建images文件夹存放对应文件。

    部分img 使用css 来布局显示。

    使用action 等过滤,将图片地址在程序中进行转化提供文件查看

相似回答