同样是织梦手机端模板问题,织梦默认是将手机端作为二级栏目的形式,即:http://www.seoalphas.com/m 就是手机端的网址;但是我们很多情况下想要的手机端url是二级域名的形式,如:http://m.seoalphas.com/ 。二级栏目的形式生成的文章页图片路径没有问题,图片会正常显示,但是如果是二级域名的情况,手机端同样调用的是和pc端同样的数据,图片显示就会异常,这是因为数据库中出入的图片路径是相对的,如:‘/uploads/.......jpg’形式,正确的路径应该是‘http://www.seoalphas.com/uploads/.......jpg’,现在却变成了‘http://m.seoalphas.com/uploads/.......jpg’,导致图片显示错误。
网上有一周处理方法是将上传的图片,在上传的时候,直接加上www的域名,这样相对路径的图片url就变成了绝对路径,在调用的时候就不会出现问题了。感觉上述方法改变了存入数据库中的数据,不够灵活。
这里采用另一种办法,在生成的时候处理要生成的图片路径,替换为绝对路径,即保持数据库内容不变,只是改变要显示的内容。
修改如下:
打开文件include/arc.archives.php文件,搜索‘isset($this->Fields[$fname]’,找到后修改为如下内容:
if($fname == 'body'){ $newbody = str_replace('src="/uploads/','src="http://'.$_SERVER['HTTP_HOST'].'/uploads/',$this->Fields[$fname]); return $newbody; }else{ return $this->Fields[$fname]; }
代码意思也比较简单:先判断下模板是否调用了body内容,如果调用了,将相对图片路径加上文字根域名。