下面我将为你提供一个从易到难、从常见到罕见的完整排查和解决方案指南,请按照步骤逐一检查,大概率能解决问题。

(图片来源网络,侵删)
第一步:基础检查(最常见原因)
在深入检查复杂设置之前,请先确认这几个最基本、最常见的问题。
检查文章是否已审核并保存
这是最最最常见的原因,未审核或未保存的文章是无法生成详情页的。
- 操作方法:
- 进入“[内容]” -> “所有档案”。
- 找到你无法生成详情页的那篇文章。
- 检查其状态:
- 是否点击了“审核”按钮? 文章状态必须是“已审核”。
- 是否点击了“保存”按钮? 确保文章内容已经成功保存到数据库。
- 如果状态是“未审核”,请点击“审核”,然后回到列表页,刷新一下,再尝试生成。
检查文章的“自定义属性”
文章的自定义属性决定了它是否被允许生成静态页面。
- 操作方法:
- 编辑该文章,在编辑页面的下方找到“自定义属性”选项。
- 必须勾选“生成HTML”,这是生成静态页面的前提条件。
- 确保“仅动态浏览”没有被勾选,如果勾选了,该文章将只动态访问,不会生成静态HTML。
- 保存并审核文章后,再次尝试生成。
检查栏目设置
栏目的设置也会影响其下文章的生成。

(图片来源网络,侵删)
- 操作方法:
- 进入“[核心]” -> “栏目管理”。
- 找到该文章所属的栏目,点击“更改”。
- 在栏目设置中,检查“栏目列表选项”:
- “列表生成选项”:确保选择的是“生成HTML”。
- “文章命名规则”:检查这里的规则是否有效,
{typedir}/{aid}.html是一个最常用且最不容易出错的规则,避免使用特殊字符或复杂的变量。
- 保存栏目设置后,再尝试生成。
第二步:权限和目录检查
如果基础设置都正确,那么问题可能出在文件系统的权限或目录上。
检查网站目录权限
DedeCMS需要写入权限来生成HTML文件到你的网站目录。
- 操作方法:
- 通过FTP或你的主机控制面板(如cPanel、宝塔面板等)进入网站根目录。
- 检查以下目录及其子目录的权限是否为
755(Linux/Unix) 或IUSR有读写权限 (Windows):- (网站根目录)
/uploads//templets//special/(如果使用了专题)- 最重要的是:你的文章存放目录,
/a/或/html/(根据你的栏目设置而定)。
- 临时解决方案:你可以尝试将这些目录的权限设置为
777,生成成功后再改回755。注意:777存在安全风险,仅作为排查手段,切勿长期保持。 - 宝塔面板用户:直接在文件管理器中右键目录,修改权限,勾选“所有者”、“用户组”、“其他”的“读取”和“执行”,以及“所有者”的“写入”权限即可。
检查目录是否存在
DedeCMS在生成文件时,如果指定的目录不存在,它可能会失败。
- 操作方法:
- 根据你在“栏目设置”或“系统参数”中设置的“文章命名规则”,确定文件应该被生成在哪个目录下。
- 如果你的命名规则是
{typedir}/{aid}.html,并且栏目路径是/news/,那么文件应该生成在/news/目录下。 - 检查这个目录是否存在,如果不存在,请手动创建它,并给予正确的写入权限。
第三步:系统参数和模板检查
如果以上都正常,问题可能出在系统全局设置或模板文件上。

(图片来源网络,侵删)
检查系统基本参数
全局设置会影响整个网站的生成行为。
- 操作方法:
- 进入“[系统]” -> “系统基本参数”。
- 在“核心设置”选项卡中,检查以下几项:
- “网站HTML状态”:必须设置为“是”。
- “默认文档命名规则”:检查这里的规则是否与栏目设置中的规则冲突或不合理,同样,推荐使用简单的规则,如
{typedir}/{aid}.html。 - “目录默认主页名称”:确保是
index.html。
- 保存设置。
检查文章模板(article_article.htm)
模板文件中的错误或调用不存在的标签,会导致生成失败。
- 操作方法:
- 进入“[模板]” -> “默认模板管理”。
- 找到并编辑你的文章详情页模板(通常是
article_article.htm)。 - 仔细检查模板代码,特别是以下几类问题:
- PHP代码错误:检查
{dede:php}...{/dede:php}标签内的PHP代码是否有语法错误。 - 自定义字段调用错误:如果你使用了自定义字段,检查调用标签是否正确,自定义字段名为
myfield,调用标签应为{dede:field.myfield /},而不是{dede:field.myfield}(少了一个 )。 - 标签拼写错误:检查所有Dede标签是否拼写正确,
{dede:field.title/}不要写成{dede:filed.title/}。 - 不存在的标签:检查是否有调用了你系统中不存在的标签。
- PHP代码错误:检查
- 测试方法:可以尝试将模板内容清空,只留下一句
{dede:field.title/},然后保存并生成,如果成功,说明模板本身有问题,再逐步将模板内容加回去,定位是哪一部分代码导致的问题。
第四步:数据库和文件冲突检查
如果问题依然存在,可能需要更深层次的排查。
检查是否有同名文件
有时,手动上传了一个与DedeCMS要生成的文件同名的文件,会导致生成失败或跳过。
- 操作方法:
- 根据你的命名规则,计算出生成的文件名是什么(
html)。 - 通过FTP检查目标目录下是否已经存在这个文件。
- 如果存在,请将其重命名或删除,然后重新生成。
- 根据你的命名规则,计算出生成的文件名是什么(
检查数据库记录
DedeCMS通过数据库中的 dede_archives (文章主表) 和 dede_arctype (栏目表) 等表来管理内容,如果这些表的数据异常,也可能导致生成失败。
- 操作方法:
- 登录你的网站数据库管理工具(如phpMyAdmin)。
- 检查
dede_archives表中对应文章的记录是否完整,特别是typeid(栏目ID) 和ismake(是否生成HTML) 字段是否正确。 - 检查
dede_arctype表中对应栏目的记录是否完整,特别是typedir(栏目目录) 和isdefault(是否默认栏目) 等字段。
第五步:终极解决方案
如果所有方法都试过了还是不行,可以考虑以下“大招”。
使用“一键更新网站”
单个文章生成会因为某些缓存或状态问题而失败,使用全局更新功能可以强制刷新所有设置。
- 操作方法:
- 进入“[生成]” -> “一键更新网站”。
- 建议先选择“更新HTML” -> “仅更新栏目页”,看看是否能成功。
- 如果栏目页更新成功,再选择“更新HTML” -> “仅更新文档页”。
- 在更新文档页时,你可以选择“选择所有栏目”或“选择特定栏目”进行更新,这个功能会重新生成所有符合条件的文章页,能解决很多隐藏问题。
重新生成缓存
系统缓存有时会出错,导致生成逻辑混乱。
- 操作方法:
- 进入“[系统]” -> “系统基本参数” -> “性能选项”。
- 点击“清除所有缓存”按钮。
- 清除后,重新尝试生成。
检查PHP版本和错误日志
- PHP版本:确保你的PHP版本与DedeCMS版本兼容,过高的PHP版本可能会导致一些旧版DedeCMS的底层函数不兼容。
- 错误日志:如果主机开启了错误日志,请查看
/logs/目录下的错误日志文件,里面可能会记录下生成失败的具体原因(例如Fatal error, permission denied等),这是定位问题的最直接线索。
总结与排查思路
遇到“Dede生成详情页生成不了”的问题,不要慌,按照以下逻辑顺序排查,可以高效地解决问题:
- 先看人:文章审核了吗?保存了吗?
- 再看规则:文章的自定义属性勾了“生成HTML”吗?栏目的生成选项和命名规则对吗?
- 再看环境:网站目录权限够吗?目标目录存在吗?
- 再看系统:系统参数里的HTML状态开没开?模板文件有错误吗?
- 最后大招:用一键更新试试,看看错误日志里怎么说。
按照这个流程,90%以上的问题都能得到解决,如果问题依然存在,可能是你使用的DedeCMS版本有特定的Bug,建议去DedeCMS官方论坛搜索类似问题或寻求帮助。
