“未生成”指的是文章内容虽然已经保存在数据库里,但没有被DedeCMS转换成最终的HTML静态页面,所以用户访问时就会看到“未生成”的提示。

(图片来源网络,侵删)
下面我将从快速解决到深入分析,为您提供一套完整的解决方案。
快速解决方法(首选)
对于90%以上的情况,问题都出在生成环节本身,请按以下步骤操作,基本都能解决。
方法1:手动生成文章(最直接)
这是最直接的方法,强制系统为这篇特定的文章生成HTML页面。
-
登录后台:使用管理员账号登录您的DedeCMS后台。
(图片来源网络,侵删) -
找到文章:进入【核心】 -> 【内容管理】 -> 【所有档案列表】,找到您需要生成的文章。
-
生成页面:
- 在文章列表中,找到那篇显示“未生成”的文章,勾选它前面的复选框。
- 点击列表下方的 [一键生成] 按钮。
-
检查结果:生成完成后,刷新页面,您会发现该文章的“生成状态”已经变成了“是”,现在去前台访问这篇文章,应该就能正常显示了。
方法2:使用“更新HTML”功能(批量处理)
如果有多篇文章都是“未生成”状态,这个方法效率更高。
- 登录后台。
- 进入更新页面:
- 点击顶部菜单栏的 [生成] 选项。
- 在下拉菜单中选择 [更新主页HTML]。
- 更新栏目:
- 在“更新主页HTML”页面,不要直接点“更新主页”,而是点击左侧的 [栏目] 菜单。
- 选择 [栏目列表]。
- 批量生成:
- 在栏目列表页面,找到您文章所在的那个栏目,勾选它。
- 点击列表下方的 [生成] 按钮。
- 在弹出的选项中,选择 [生成所有栏目] 或 [生成栏目目录],这会重新生成该栏目下的所有文章列表页和内容页。
如果手动生成无效,排查深层原因
如果手动点击生成后,状态依然是“未生成”,或者生成后前台还是404/空白,那么问题可能出在以下几个方面。
检查目录权限(最常见的原因)
DedeCMS需要服务器的写入权限来创建和修改HTML文件,如果目录权限不正确,生成就会失败。
-
需要检查的目录:
- (网站根目录)
/templets/(模板目录)/data/(数据目录)/uploads/(上传目录)/html/(默认的文章生成目录,如果您的后台设置里改了路径,请检查对应路径)/special/(专题目录)
-
如何设置权限:
- 通过FTP软件:右键点击这些目录,选择“文件权限”(File Permissions),将数值设置为
755。 - 通过主机面板:在文件管理器中找到这些目录,修改权限为
755或775(如果服务器是Linux系统且用户组为www)。 - 通过SSH命令 (如果服务器支持):
chmod -R 755 /path/to/your/dedecms chown -R www:www /path/to/your/dedecms # 将所有者改为Web服务器用户(如www, nginx, apache)
- 通过FTP软件:右键点击这些目录,选择“文件权限”(File Permissions),将数值设置为
检查模板文件是否存在或损坏
文章的HTML是由模板文件生成的,如果模板文件丢失或代码错误,生成也会失败。
-
检查模板路径:
- 进入后台【系统】-> 系统基本参数 -> 核心设置。
- 查看“文章默认页模板”和“文章列表页模板”的路径是否正确,通常是
default/article_article.htm和default/list_artlist.htm。 - 确认
/templets/目录下是否存在对应的模板文件。
-
检查模板内容:
- 用FTP或文件管理器打开对应的模板文件(如
article_article.htm)。 - 检查文件内容是否完整,是否有被误删或破坏,特别是文章内容调用标签
{dede:field.body/}是否存在。
- 用FTP或文件管理器打开对应的模板文件(如
检查服务器环境
- 伪静态是否开启:DedeCMS默认开启伪静态,如果您的服务器(如Nginx、Apache)没有正确配置伪静态规则,会导致生成的静态页面无法被正确访问。
- 解决方案:检查您的服务器配置,确保包含了DedeCMS官方提供的伪静态规则,通常在DedeCMS安装包的
htaccess.txt文件中(用于Apache)或nginx.conf文件中(用于Nginx)。
- 解决方案:检查您的服务器配置,确保包含了DedeCMS官方提供的伪静态规则,通常在DedeCMS安装包的
- PHP执行错误:有时PHP代码本身有错误,导致生成过程中断。
- 解决方案:检查服务器的PHP错误日志,看是否有相关报错信息。
检查数据库
- 数据完整性:极少数情况下,文章数据在数据库中可能不完整。
- 解决方案:登录数据库管理工具(如phpMyAdmin),找到
dede_archives表(文章主表),检查您那篇文章的记录,特别是ismake字段(是否生成),应该是0或-1。title、body等关键字段是否为空。(此操作需谨慎,不熟悉数据库请勿随意修改)
- 解决方案:登录数据库管理工具(如phpMyAdmin),找到
预防措施(避免再次发生)
为了避免以后再次出现这个问题,建议养成以下好习惯:
- 定期维护:定期使用【生成】功能更新主页、栏目和内容,保持网站内容与静态文件同步。
- 修改文章后手动生成:如果只是修改了文章标题或摘要,建议去“所有档案列表”里勾选文章,点击“仅更新HTML”,如果修改了正文内容,最好重新生成一遍。
- 检查目录权限:在更换服务器、迁移网站或通过FTP上传文件后,务必检查一遍关键目录的权限是否正确。
- 使用安全FTP:尽量使用SFTP等安全的FTP方式上传下载文件,避免因文件传输问题导致文件损坏或权限丢失。
遇到“未生成”问题,解决流程如下:
- 首选:【所有档案列表】 -> 勾选文章 -> [一键生成]。
- 批量:【生成】 -> [更新主页HTML] -> [栏目] -> 勾选栏目 -> [生成]。
- 如果失败:检查 目录权限、模板文件、服务器伪静态。
- 终极手段:检查数据库(谨慎操作)。
按照这个思路,绝大多数问题都能迎刃而解,祝您使用愉快!
