96SEO 2025-10-16 11:29 1
Dedecms作为一款广受欢迎的内容管理系统, 在绑定二级域名进行附件目录设置时常见的问题之一就是文章中的图片无法正常显示。这主要源于路径引用的问题。默认情况下 Dedecms生成的图片路径是相对路径,当你绑定了二级域名后相对路径指向位置发生变化,导致浏览器请求不到正确的图片资源。
简单 就是“域名变了但图片链接还是旧的相对路径”所以造成了404错误或者空白图像。

使用二级域名绑定附件目录有以下几个优势:
但由于Dedecms默认设计并没有完全兼容这种场景, 所以需要进行额外设置和代码调整,才能保证图片正常显示。
在Dedecms后台——系统参数设置——其它选项中, 有两个与二级域名附件相关的重要配置:
附件目录是否绑定为指定的二级域名附件目录的二级域名地址开启第一个选项并填写第二个选项后系统将尝试把附件调用改为绝对URL,按道理讲可以解决部分图片访问问题。
DedeCms内部生成文章内容的时候, 很多时候会存储相对路径,这使得导致资源找不到。
还有啊, 一些模板或核心函数生成缩略图、列表页展示时也没有统一使用带有完整URL前缀的路径,导致多处调用失效。
/include/inc_arclist_view.php 第594行附近 —— 图片路径处理逻辑 /include/inc/inc_fun_spgetarclist.php 第195行 —— $row赋值操作 /include/dialog/select_* 系列文件 —— 附件选择器处理 - 登录后台:系统 - 系统设置 - 核心设置 - 找到“是否支持多站点”, 选择“是” - 找到“是否启用绝对网址”,也选择“是” - 保存设置,并清空缓存 此举确保后台输出的链接都会以完整URL形式出现,不再是相对路径,从根本上避免因不同子域而导致访问失败的问题。
- 打开/include/inc_arclist_view.php, 找到第594行左右包含类似如下代码的位置:
$row = $row . $row;
- 将该行替换成下面代码:
// 判断是否开启了附件目录绑定
if {
$addon_domain = $GLOBALS;
} else {
$addon_domain = $row;
}
$row = $addon_domain . $row;
- 同样方法适用于其他调用图片变量赋值的位置, 比如/include/inc/inc_fun_spgetarclist.php 第195行附近.
*此修改可以强制让所有调用得到的是完整且正确的URL地址,从而避免因基于当前访问子域拼接造成的错误问题。
如果你的服务器支持Linux命令,可以通过软连接方式解决物理上传目录不一致问题。比方说 将你的/uploads/映射到二级子站点根目录下:
ln -s /var/www/html/uploads /var/www/subdomain/uploads
// 注意根据你的实际网站根目录调整命令中的路径
// 确保权限与所有者允许web服务读取
这样,在浏览器访问http://sub.yoursite.com/uploads/xxx.jpg 时会实际映射至主站上传文件夹,实现无缝访问。这种方式成本低,无需改动程序核心,但只适用于你能控制服务器环境且熟悉命令操作的人士。
Demand feedback