今天测试一个已经上线的项目,我把整个的代码pull下来后,并把所有的该配置的都配好了,结果在网页中的某些页面中的图片无法显示。我当时那个郁闷啊。因为我前一天在网上测试时没有出现这个问题啊。
原因是在加载页面时一些img标签或者css中的background-image请求了一些含有中文的图片。于是这个页面会自动向服务端发送请求获取资源,但是这个过程不会体现到地址栏的,是在后台操作的。例如我请求了一个index.html页面但是页面中有一个<img src="img/测试图片.png">标签。通过firedebug可观察如下:
而tomcat默认是用ISO-8859-1来处理请求地址的,因此会出现图片无法显示。解决方法如下:
在tomcat的目录下/conf/server.xml中找到:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
改成如下:
<Connector connectionTimeout="20000"
URIEncoding="utf-8" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
大功告成!
【追加问题】
今天我将这个配置修改成utf-8后,启动服务器问题虽然是没有了,但是过了一会儿我再访问时发现这个配置文件又被还原了,于是问题依旧。我也没有重新启动过服务器啊。到现在我还在郁闷这个问题!希望高手看到能够解决。