解决页面绝对路径下的图片不显示问题

本文介绍了解决在JSP页面中无法正确显示本地磁盘图片的问题方法。通过在Tomcat中配置虚拟路径,使得图片能够被正确加载显示。此外,还讨论了图片存储的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述: 

我将图片保存到本地磁盘下,然后数据库中保存的是图片的绝对路径。
可是在jsp页面中显示的是图片的绝对路径,但不是图片,具体代码如下:
<img src="E:\Cache\Img_Cache\20171213091911.jpg"/>

原因分析 :

原来tomcat默认是在项目的根目录下去找图片,
<img src="http://localhost:8080/znkj/images/20171213091911.jpg"/>
而实际上图片并不保存在这个位置。

解决方法:

        

配置虚拟路径:
在tomcat的安装路径下打开conf/server.xml ,
在<Host></Host>中间添加如下代码:
<Context path="/Cache/Img_Cache/" docBase="E:\Cache\Img_Cache" reloadable="true">    </Context>

        
前端jsp代码如下:
<img src="/Cache/Img_Cache/20171213091911.jsp">
这个时候启动tomcat,图片就能正常显示了。

注意: 
虚拟路径/Cache/Img_Cache与上面配置的path要保持一致。
    一般来讲,图片上传不会和项目分开,如果项目上线发布到服务器上是不存在分盘的,所以路径问题最后还是要修改。所以以上将图片保存在本地磁盘的做法不建议使用,最好还是保存在项目根目录下,不过这样做也有一点弊端,随着用户上传的文件的增多,项目所占的内存会一直增加。
    推荐一种比较直观的做法,将图片文件这些上传到oss,项目中直接写文件的路径即可,也不需要额外的配置,更加的正规可靠。当然,如果只是测试不需要上线的话,前面的这种方式还是可以的。



评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值