静态生成概述
织梦CMS的核心优势之一就是支持生成纯静态HTML文件。通过将动态PHP页面预先生成为静态HTML,可以大幅提升网站的访问速度和承载能力,同时减少服务器资源消耗。栏目的静态生成涉及栏目列表页和内容页的HTML生成。
一、设置栏目为静态模式
首先需要为栏目开启静态生成功能:
- 进入
核心 > 栏目管理 - 点击目标栏目的"更改"
- 在"栏目属性"中找到以下设置:
栏目列表使用动态/静态: 静态 ? 文章内容使用动态/静态: 静态 ?
保存后,该栏目将使用静态HTML方式访问。
二、静态文件的生成规则
| 页面类型 | 生成路径 | 示例 |
|---|---|---|
| 栏目首页 | {typedir}/index.html | /news/index.html |
| 栏目列表第N页 | {typedir}/list_{N}.html | /news/list_2.html |
| 文章内容页 | 自定义命名规则 | /news/2024/0801/1.html |
三、生成栏目HTML的操作步骤
通过后台手动生成静态文件:
- 进入
生成 > 更新栏目HTML - 选择需要生成的栏目(可多选)
- 可选择生成范围:
- 仅更新栏目首页
- 更新栏目下所有列表页(包含分页)
- 同时更新栏目下的内容页
- 点击"开始生成"
- 等待生成进度条完成
四、一键更新全站静态文件
<!-- 后台操作路径 --> 生成 > 一键更新网站 ├─ 更新主页HTML ├─ 更新栏目HTML ├─ 更新文档HTML └─ 更新专题HTML
五、定时自动生成
通过定时任务实现栏目HTML的自动更新:
<!-- Linux Crontab 定时生成 -->
<!-- 每小时生成一次首页和栏目 -->
0 * * * * /usr/bin/php /www/web/yourdomain/makehtml.php
<!-- makehtml.php 内容示例 -->
<?php
require_once(dirname(__FILE__)."/include/common.inc.php");
require_once(DEDEINC."/arc.partview.class.php");
// 更新首页
$pv=new PartView();
$pv->SetTemplet($cfg_basedir.$cfg_templets_dir."/".$cfg_df_style."/index.htm");
$pv->SaveToHtml($cfg_basedir.$cfg_cmspath."/index.html");
// 更新所有栏目
$dsql->SetQuery("SELECT id FROM dede_arctype WHERE ishidden=0");
$dsql->Execute();
while($row=$dsql->GetArray()){
// 调用栏目生成函数
}
?>
六、常见的栏目生成问题
- 生成速度慢:栏目文章数量过大时,建议分批次生成,或优化服务器配置(增加PHP内存限制)
- 生成后页面空白:检查栏目模板文件是否存在,以及模板语法是否有错误
- 分页文件未生成:确认栏目有足够多的文章才需要生成分页
- 生成后URL不变:确保栏目属性设置为"静态",并清除系统缓存
七、动态与静态访问切换
可在模板中添加动态访问的备用链接:
<!-- 动态访问链接(用于调试或临时切换) -->
<a href="/plus/list.php?tid={dede:field.id/}">动态查看</a>
<!-- 文章动态访问 -->
<a href="/plus/view.php?aid={dede:field.id/}">动态查看</a>
优化建议:对于大型网站(万级以上文章),建议开启栏目首页静态+文章内容静态的组合方式。栏目列表的分页页面可选择动态访问以减少服务器存储空间和维护成本。