在使用Dedecms CMS模板进行网站构建时,有时我们可能需要为某个栏目绑定二级域名,并开启Dedecms的多站点支持功能。然而,这种操作可能会导致该栏目的文章中的图片无法正常显示。这一问题的根本原因在于,Dedecms默认情况下,文章中调用的图片路径是相对路径。当我们绑定二级域名后,图片路径会出现错误,从而导致无法正确访问图片。
解决这一问题的方法非常简单,主要思路是将文章内容中的图片路径改为绝对路径。具体操作可以分为两个部分:第一部分是对已经生成的文章图片路径进行修改;第二部分是让新生成的文章图片路径默认为绝对路径。
一、将已生成的文章图片路径改为绝对路径
1、登录Dedecms后台,依次进入“核心”->“批量维护”->“数据库内容替换”。
选择表:dede_addonarticle,字段:body。
被替换内容:src="/uploads/
替换为:src="http://你的域名/uploads/
2、进入后台“系统”->“系统设置”->“核心设置”,将“(是/否)支持多站点,开启此项后附件、栏目连接、arclist内容启用绝对网址”选项设置为“是”,然后保存。
3、重新生成所有内容页面。
完成以上步骤后,之前生成的文章图片路径就会全部更改为绝对路径,二级域名下的文章图片也能正常显示了。
二、让Dedecms文章内容图片默认生成绝对路径
1、打开目录include下的文件extend.func.php,在文件末尾添加一个函数:
function replaceurl($newurl) {
$newurl = str_replace('src="/uploads/allimg/', 'src="http://你的域名/uploads/allimg/', $newurl);
return $newurl;
}
2、在文章模板中,将调用文章内容的标签{dede:field.body/}替换为:
{dede:field.body function='replaceurl(@me)'/}
完成上述操作后,创建新文章时,文章中的图片路径将默认生成为绝对路径。
通过以上方法,我们可以有效解决Dedecms绑定二级域名后图片无法显示的问题,确保网站在多站点环境下仍能正常运行。