图片上传到根目录读取不到问题

        开始!

        最近接手一个老项目,项目背景大概是这样:项目是韩国人开发的,06年的代码,项目里面所有注释都是韩语,用的struts1+jdbcutil+jsp,代码写法跟中国的方式不太一样,另外有很多关联系统,互相之间会有联动。

        老项目的话有一个特点,就是配置很多、特别多。我数了一下是有22个配置文件,不包括tomcat的配置和struts的actionmapping需要的配置,各种xml和properties。

        有这样一个需求,原来的上传图片的路径是在项目路径webcontent下面,新需求让改在C盘的一个绝对路径下面,这很简单嘛,配置文件路径一改就好了,几秒钟完成,然后测试,然后问题来了,上传是传上去了,但是项目中图片没显示出来,F12查看发现图片路径是一个相对路径,然后浏览器直接把路径改成根目录试一下,发现改不动,改成根目录保存会自动变成跟之前一样的相对路径,图片还是不显示。这种情况应该是页面上有限制,然后开始撸代码,找到对应的页面,查看页面上没发现有限制的地方,然后查看引用的js,最后在一个common.js里面找到了相应的设置,它会把所有的路径都变成统一的,因为有很多页面都有引用该js,所以这个js不能动,那么copy一个出来,改一改,这个页面单独用呢?试了以后还是不行,阿西吧,开始思考!

        1、图片确实传上去了;

        2、直接ip+路径也能访问到;

        3、项目js有限制,但是改了还不行,改的新的,也不存在js版本缓存问题;

        4、那原来的图片是怎么显示的,原来的图片是在项目路径下;

        很明了了,没读取到图片,但是在项目路径下面是可以读取到的,在根目录下面就读不到了,图片路径又是经过公共js统一处理过的,所以:路径不能变,公共js不能变,图片已经传上去了,不需要变,只能想办法让在这些条件不变的情况下读取到图片,那么查查看是不是可以改配置,果然,想要读取本地图片,tomcat的server.xml需要加配置,需要加一个类似这样的配置,相应的根目录换成图片存放的根目录即可。

        由于项目运营环境和测试环境是用的weblogic,本地开发环境是用的tomcat,所以weblogic也需要增加相应的配置,WEB-INF下面有一个weblogic.xml,要加virtual-directory-mapping和local-path等配置,配置的也是相应的路径信息,百度一下有很多。

        至此,项目中的图片可以正常显示!

        结束!

你可能感兴趣的:(随笔)