在织梦(DedeCMS)系统中,默认情况下,发布文章时会自动生成静态HTML文件,以提高网站访问速度,在某些特定场景下,用户可能希望文章不生成HTML文件,例如开发调试阶段、动态内容测试或需要实时更新数据的场景,要实现这一功能,需要通过修改系统配置或代码调整来完成,以下是详细的操作方法和注意事项:

通过后台设置关闭静态生成
织梦后台提供了简单的开关选项,可以直接控制是否生成HTML文件,具体步骤如下:
- 登录织梦后台,进入“系统”-“系统基本参数”。
- 在“核心设置”选项中,找到“是否使用伪静态”选项,将其设置为“否”。
- 继续向下找到“生成HTML”相关选项,如“文章生成HTML”“栏目生成HTML”等,全部选择“否”。
- 保存设置后,新发布的文章将不再生成HTML文件,而是以动态形式访问。
需要注意的是,此方法仅对后续发布的文章生效,已生成的HTML文件需要手动删除,若需彻底清除现有静态文件,可通过“系统”-“数据备份/恢复”-“一键更新网站”功能,选择“更新HTML”并取消勾选所有选项,然后执行更新。
修改模板文件实现动态调用
如果希望特定栏目或文章始终以动态形式展示,可以通过修改模板文件来实现,具体操作如下:
- 进入后台“模板”-“默认模板管理”,找到对应栏目或文章的模板文件(如
article_article.htm
)。 - 在模板文件中,将原本的静态链接(如
{dede:field name='arcurl'/}
)替换为动态链接格式。- 原静态链接:
/article/{dede:field name='id'/}.html
- 修改为动态链接:
/plus/view.php?aid={dede:field name='id'/}
- 原静态链接:
- 保存模板文件后,更新相关栏目或文章,页面将直接调用动态内容。
还可以在模板文件中使用{dede:php}
标签编写PHP代码,强制动态输出内容。

{dede:php} require_once(DEDEINC."/arc.archives.class.php"); $arc = new Archives($aid); $arc->Display(); {/dede:php}
通过数据库配置控制生成行为
对于需要全局控制不生成HTML的场景,可以通过修改数据库配置来实现,具体步骤如下:
- 登录网站数据库管理工具(如phpMyAdmin)。
- 找到
dede_arctype
(栏目表)或dede_archives
(文章表)。 - 将表中
ishtml
字段的值修改为“0”,表示该栏目或文章不生成HTML文件。 - 对于已存在的文章,可执行SQL批量更新:
UPDATE dede_archives SET ishtml = '0' WHERE typeid = '目标栏目ID';
通过代码修改禁用静态生成
如果上述方法无法满足需求,可以通过修改织梦核心代码来实现,以下是关键修改点:
- 禁用文章生成HTML:
- 打开
/include/helpers/archive.helper.php
文件。 - 找到
WriteMakeHtml()
函数,在函数开头添加return;
语句,直接终止执行。
- 打开
- 禁用栏目生成HTML:
- 打开
/include/helpers/channelunit.helper.php
文件。 - 找到
TypeGetSunUrl()
函数,将其中的静态生成逻辑注释或删除。
- 打开
注意事项
- 性能影响:关闭HTML生成后,网站将完全依赖动态调用,可能会对服务器性能造成一定压力,尤其是高并发场景下。
- URL兼容性:动态链接与静态链接的格式不同,需确保内部链接和外部链接已同步更新,避免404错误。
- SEO优化:动态URL不利于搜索引擎抓取,若长期使用,建议通过伪静态技术优化URL结构。
- 缓存清理:修改设置后,需清理浏览器缓存和织梦缓存(后台“系统”-“缓存管理”)以生效。
相关问答FAQs
问题1:关闭HTML生成后,如何清理已存在的静态文件?
解答:可通过FTP工具登录网站服务器,删除/html
目录下的所有文件,也可在织梦后台使用“一键更新网站”功能,选择“更新HTML”并取消所有选项,执行后系统会自动清理冗余文件。
问题2:是否可以仅对特定文章不生成HTML?
解答:可以,在发布文章时,勾选“仅动态浏览”选项(需确保后台已开启此功能),或在文章编辑页面,通过“高级选项”中的“是否生成HTML”设置为“否”,还可通过修改dede_archives
表中对应文章的ishtml
字段为“0”实现。
