index.html 的核心作用:静态化页面
首先要明确一点:index.html 是一个静态的 HTML 文件。

(图片来源网络,侵删)
这与我们常见的动态网站(如 WordPress 的 index.php)有本质区别,动态网站每次访问首页时,服务器都需要实时从数据库中读取文章、分类等信息,然后动态生成页面内容返回给浏览器。
而 DedeCMS 的首页 index.html 是预先生成好的,当你在后台添加、删除或修改文章后,你需要手动点击“更新首页”或者通过计划任务来重新生成这个 index.html 文件,生成后,用户访问你的网站首页时,服务器直接把这个已经写好的 index.html 文件发送给浏览器,速度非常快,服务器负载也低。
index.html 是 DedeCMS 首页的最终呈现形式,它是由后台的模板文件和数据库内容共同生成的。
index.html 是如何生成的?
index.html 的生成过程可以概括为:模板 + 数据 = 静态页面。

(图片来源网络,侵删)
-
模板文件 (
index.htm)- 这是
index.html的“骨架”或“设计稿”。 - 它是一个 HTML 文件,里面包含了网站的 HTML 结构、CSS 样式和 JavaScript 代码。
- 最重要的是,它使用 DedeCMS 的模板标签来标记需要动态插入内容的位置。
- 位置:
/templets/default/目录下,如果你的网站使用了其他模板,则路径可能是/templets/你的模板名称/。
- 这是
-
数据源 (MySQL 数据库)
- 这是
index.html的“血肉”。 - 你在后台发布的所有文章、图片、分类、友情链接等信息都存储在网站的 MySQL 数据库中。
- DedeCMS 的标签会根据你设定的规则,从数据库中查询出相应的数据。
- 这是
-
生成引擎 (DedeCMS 核心程序)
- 这是“建造师”。
- 当你在后台点击“生成” -> “更新主页”时,DedeCMS 的核心程序会执行以下操作:
a. 读取
index.htm模板文件。 b. 解析模板中的所有 DedeCMS 标签。 c. 根据标签的指令,连接数据库,查询出所需的数据。 d. 将查询到的数据替换掉模板中的标签。 e. 将最终合并好的 HTML 代码写入到网站的根目录下,生成index.html文件。
index.htm 模板文件详解
index.htm 是你修改首页样貌和内容的主要文件,我们来看一个典型的 index.htm 结构和常用标签。

(图片来源网络,侵删)
示例 index.htm 结构:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">{dede:global.cfg_webname/}</title>
<meta name="description" content="{dede:global.cfg_description/}">
<link rel="stylesheet" href="/templets/default/style.css">
</head>
<body>
<header>
<h1><a href="/">{dede:global.cfg_webname/}</a></h1>
<!-- 调用网站Logo -->
<img src="{dede:global.cfg_logo/}" alt="{dede:global.cfg_webname/}" />
</header>
<nav>
<!-- 调用主导航栏 -->
{dede:channel type='top' row='8'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}
</nav>
<main>
<!-- 调用推荐文章/幻灯片 -->
{dede:arclist flag='c' row='5'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
<!-- 调用最新文章列表 -->
{dede:arclist titlelen='40' row='10'}
<li>
<span class="title"><a href="[field:arcurl/]">[field:title/]</a></span>
<span class="date">[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
</li>
{/dede:arclist}
</main>
<footer>
<p>版权所有 © {dede:global.cfg_powerby/}</p>
<!-- 调用网站备案号 -->
<p>{dede:global.cfg_beian/}</p>
</footer>
</body>
</html>
常用模板标签解析:
-
全局标签:
{dede:global.cfg_webname/}:网站名称。{dede:global.cfg_description/}:网站描述。{dede:global.cfg_keywords/}:网站关键词。{dede:global.cfg_logo/}:网站 Logo 图片地址。{dede:global.cfg_powerby/}:版权信息(通常显示 DedeCMS 或你的公司名)。{dede:global.cfg_beian/}:网站备案号。
-
栏目/频道标签:
{dede:channel type='top' row='8'}:调用顶级栏目(主导航)。type='top':表示顶级栏目。row='8':显示8个栏目。[field:typelink/]:栏目链接。[field:typename/]:栏目名称。
-
文章列表标签:
{dede:arclist flag='c' titlelen='40' row='10' orderby='pubdate'}:这是最核心的标签,用于调用文章列表。flag='c':调用属性为“推荐”或“幻灯片”的文章(c代表推荐)。titlelen='40'长度,截取40个字符。row='10':调用10篇文章。orderby='pubdate':按发布时间排序。[field:title/]。[field:arcurl/]:文章链接。[field:pubdate function="MyDate('Y-m-d',@me)"/]:文章发布日期,并格式化为年-月-日。[field:description/]:[field:litpic/]:文章缩略图。
-
其他常用标签:
{dede:flink/}:调用友情链接。{dede:include filename="head.htm"/}:包含另一个模板文件(如头部文件head.htm),用于模块化开发。
如何修改和管理首页?
修改首页内容和样式
- 进入后台:登录你的 DedeCMS 后台。
- 找到模板:左侧菜单栏 -> 模板 -> 默认模板管理。
- 编辑
index.htm:在模板列表中找到index.htm,点击右侧的 [编辑] 按钮。 - 进行修改:在这里你可以直接修改 HTML、CSS 和 DedeCMS 标签,想修改首页文章数量,就找到
{dede:aristle row='10'}这一行,把10改成你想要的数字。 - 保存模板:修改完成后,点击 [保存] 按钮。
更新(重新生成)首页
修改完模板后,index.html 不会自动更新,你必须手动重新生成它。
- 进入生成页面:在后台左侧菜单栏,点击 生成 -> 更新主页HTML。
- 开始生成:在打开的页面中,直接点击 [开始生成主页HTML] 按钮。
- 完成:等待几秒钟,系统提示“成功生成主页HTML文件!”就完成了。
你访问网站首页,就能看到修改后的效果了。
常见问题与解决方案 (FAQ)
问题1:为什么我修改了 index.htm 并更新了,首页还是没变化?
- 原因:浏览器缓存了旧的
index.html。 - 解决方案:
- 强制刷新浏览器(
Ctrl + F5或Cmd + Shift + R)。 - 在浏览器地址栏按
Enter键前,先按Ctrl + F5。 - 清理浏览器缓存。
- 如果使用了 CDN(内容分发网络),需要刷新 CDN 缓存。
- 强制刷新浏览器(
问题2:index.html 文件在哪里?
- 位置:在你的网站根目录下,也就是
index.php、dede/(后台目录)、templets/(模板目录)所在的同一级目录。
问题3:我想用动态首页,不想用静态的 index.html,可以吗?
- 可以,但不推荐,DedeCMS 支持动态浏览。
- 方法:登录后台 -> 系统 -> 系统基本参数 -> 核心设置,找到 “首页显示方式” 选项,将其修改为 “动态浏览”。
- 缺点:会损失网站的速度和 SEO 优势(搜索引擎更喜欢静态页面),并且会增加服务器负担。
希望这份详细的解析能帮助你完全理解 DedeCMS 的 index.html!
