终极 解决方法
找到 includedialogselect_images_post.php 第108行
$fileurl = $activepath.’/’.$filename;
换成:
$fileurl = ‘你的域名’.$activepath.’/’.$filename;
这样就可以完美实现dedecms上传图片相对路径改成绝对路了。
dedecms升级到5.7SP1后,开启二级域名,你会发现,在二级域名下的文章,上传的图片地址都是:二级域名+图片地址,这是相对路径。但是你的图片是默认上传在uploads里面的。应该使用绝对路径。这就出现图片路径错误,导致图片不显示。那怎么修改这种情况呢?我在网上看了好多方法,但是大部分最终是不可用的。在这里,将两种有效的方法分享给大家。这两种方法都是在你开启“多站点支持”、“绑定完二级域名”的前提下。
第一种:批量修改域名下所有文章内的图片路径。
1、进后台-核心-批量维护-数据库内容替换
2、选择表 dede_addonarticle
3、字段 body
4、被替换内容: src="/uploads/
5、替换为:src="http://你的域名/uploads/
6、点击“开始替换”
提示完成后就代表替换完成。 生成一下文章,你就发现前台显示正常了。
这种方法对于网站不大经常更新的站长比较适合,如果你每天都会更新网站文章,这个方法就会太繁琐了!下面介绍第二种方法。彻底解决这个问题。
第二种:修改程序文件,增加一个参数。
1、找到include下的文件extend.func.php
2、在文件最后增加一个参数。(php函数的结束括号外)
function replaceurl($newurl) { $newurl=str_replace('src="/uploads/allimg/','src="http://你的域名/uploads/allimg/',$newurl); return $newurl; }
3、将文章正文的调用标签 {dede:field.body/} 修改成 {dede:field.body function='replaceurl(@me)'/}
4、传到服务器,在测试一下就会发现,问题解决!
织梦缩略图:
在插入数据库和修改数据库的时候(添加和编辑),只需判断当前缩略图是否包含域名这个字符串,如果包含了就不做操作,没包含就加一个绝对路径,就解决了.也就是这里只需要改一个地方,就是操作数据库前处理下就好了.我用的是这种.
下面是详细代码:
大家打开织梦的后台路径 默认是dede/article_add.php 和 dede/article_edit.php
两个文件一个是添加的时候,一个是编辑的时候
搜索 if(preg_match("#j#", $flag)) $ismake = -1; 这句代码
在这句代码的上面加入以下代码:
if($litpic!='' && !checkstr($litpic,$cfg_basehost)){
$litpic=$cfg_basehost.$litpic;
}
然后随便在include的一个php文件里面加入以下代码:
function checkstr($str,$str1){ //判断是否包含$str1这个字符 $tmparray = explode($str1,$str); if(count($tmparray)>1){ return true; } else{ return false; } }
就解决了,这个判断的意思就是如果缩略图不为空的话,并且缩略图url不包含域名的话,就给他加一个域名,这样就解决了.
那么基本就搞定了
« 上一篇:如何解决dedecms生成文章的时候不能全部更新的bug问题
» 下一篇:dedecms织梦清空文章并恢复文章ID从1开始