在织梦(DedeCMS)系统中,文章发布后若未正确生成静态页面,可能会导致前台无法正常显示内容或出现动态链接,影响网站SEO和用户体验,解决“文章未生成”的问题需要系统性地排查生成流程、权限配置及模板文件,以下是详细的操作步骤和注意事项:

检查文章生成状态与操作流程
-
确认生成状态
登录织梦后台,进入“核心”→“内容模型管理”→“普通文章”,检查当前文章是否处于“未审核”或“仅动态”状态,若文章状态异常,需手动审核:在“所有文档”中勾选文章,点击“审核”按钮,确保状态为“已审核”。 -
手动生成文章
- 单篇生成:在文章编辑页面点击“生成HTML”按钮,或进入“所有文档”→勾选文章→点击“一键生成”→“仅生成所选文档”。
- 批量生成:若多篇文章未生成,可在“所有文档”页面选择“全选”或按条件筛选后,点击“一键生成”→“生成所有HTML”,系统会自动处理未生成的文章。
-
检查生成队列
后台“系统”→“系统设置”→“计划任务管理”中,确认“首页更新”和“栏目更新”任务是否启用,若未启用,需手动添加任务并设置执行频率(如每小时执行一次),确保定时生成功能正常运行。
排查生成失败的原因
目录权限问题
- 检查目录权限:确保网站根目录及子目录(如
/html/
、/uploads/
)具有755或775权限(Linux系统),可通过FTP或主机控制面板修改。 - 验证写入权限:尝试在
/html/
目录下新建文件,若失败则需联系主机商调整权限,或使用chmod -R 755 dede/
命令(需SSH权限)。
模板文件异常
- 模板标签错误:检查文章内容页模板(如
article_article.htm
)是否包含未定义的标签(如{dede:field.keywords/}
),可通过后台“模板”→“默认模板管理”重新下载官方模板覆盖。 - 模板路径错误:确保模板目录路径正确(如
/templets/default/
),避免因路径迁移导致模板无法加载。
生成规则配置
- 检查栏目目录设置:进入“栏目管理”→编辑栏目→“高级选项”→“文章命名规则”,确认规则是否包含非法字符(如 、),推荐使用默认规则
{typedir}/{Y}/{M}{D}/{aid}.html
。 - URL重写冲突:若使用伪静态,需检查
.htaccess
文件(Apache)或web.config
(IIS)规则是否与织梦生成规则冲突,可暂时关闭伪静态测试生成是否正常。
数据库与缓存问题
- 修复数据表:通过后台“系统”→“数据库备份/恢复”→“修复表”检查
dede_archives
(文章主表)和dede_arctiny
(文章微表)是否损坏。 - 清理缓存:删除
/data/
目录下的缓存文件(如cache_
开头的文件),避免缓存导致生成异常。
使用生成器工具辅助处理
若手动生成效率低,可通过以下工具批量处理:

-
织梦一键生成插件
- 安装第三方生成插件(如“DedeHTML批量生成器”),通过后台插件管理上传启用,支持按栏目、时间范围批量生成。
- 操作步骤:插件启用后,进入“内容生成”→选择生成范围→设置并发数(建议5-10)→开始生成。
-
命令行生成(需服务器支持)
通过SSH连接服务器,执行织梦自带的生成脚本:cd /网站根目录/ php dede/makehtml_all.php
该脚本会强制生成所有未生成的HTML文件,适合大量文章未生成的情况。
预防措施与日常维护
- 定时生成设置:在后台“计划任务”中添加“首页更新”和“栏目更新”任务,设置为每日凌晨执行,避免手动遗漏。
- 监控生成日志:定期查看
/data/
目录下的log_
文件,记录生成失败的错误信息(如权限不足、模板错误)。 - 定期备份数据:通过后台“系统”→“数据库备份”定期备份,避免因生成失败导致数据丢失。
常见问题与解决方案
以下为生成过程中可能遇到的问题及快速排查表:

问题现象 | 可能原因 | 解决方案 |
---|---|---|
点击生成无反应 | JavaScript被禁用 | 浏览器设置中启用JavaScript |
生成后文章空白 | 模板标签缺失 | 检查模板文件,补充必要标签 |
提示“目录不可写” | 目录权限不足 | 修改目录权限为755 |
生成后链接跳转404 | 伪静态规则冲突 | 暂时关闭伪静态测试 |
仅部分栏目无法生成 | 栏目目录规则异常 | 重置栏目生成规则为默认值 |
相关问答FAQs
Q1:为什么文章审核后仍显示“仅动态”,无法生成HTML?
A:通常是因为栏目设置中“栏目列表选项”勾选了“使用动态页”,进入“栏目管理”→编辑对应栏目→“高级选项”→取消勾选“使用动态页”,保存后重新生成即可。
Q2:批量生成时提示“内存溢出”怎么办?
A:由于生成大量文章占用内存过高,可通过以下方式解决:
- 修改
php.ini
文件,增加memory_limit = 256M
(或更高值); - 分批生成,每次选择100篇文章左右;
- 使用命令行生成工具,其内存占用低于网页版。