理解这个结构是进行 DedeCMS 二次开发、主题定制和日常维护的基础,DedeCMS 的模板系统非常灵活,其核心思想是 与表现”,即 PHP 代码(业务逻辑)和 HTML 代码(页面外观)分开存放。

核心模板文件夹
默认情况下,DedeCMS 的主要模板文件都存放在 /templets/ 目录下,这个目录是整个模板系统的核心。
当你登录 DedeCMS 后台,进入【系统】->【系统基本参数】->【核心设置】,你会看到一个关键选项:
模板目录 (tpldir): 这个值通常就是/templets/,它定义了系统去哪里寻找模板文件。默认模板风格 (dfstyle): 这个值通常是一个子目录名,default,它定义了当前网站使用的具体模板风格。
一个典型的模板文件路径是:/templets/默认模板风格/具体的模板文件。
首页模板的路径就是:/templets/default/index.htm。

/templets/ 目录下的子文件夹详解
/templets/ 目录内部会根据你安装或创建的模板风格,自动生成相应的子文件夹,一个典型的结构如下:
/templets/
├── default/ # 默认模板风格文件夹
│ ├── index.htm # 首页模板文件
│ ├── article_article.htm # 文章内容页模板
│ ├── list_article.htm # 文章列表页模板
│ ├── search.htm # 搜索结果页模板
│ ├── head.htm # 公共头部文件
│ ├── footer.htm # 公共底部文件
│ └── ... # 其他各种页面模板
├── pc/ # 另一个PC端模板风格(例如你自定义的)
│ ├── index.htm
│ └── ...
├── mobile/ # 手机端模板风格
│ ├── index.htm
│ └── ...
├── shop/ # 商城系统模板风格
│ ├── index.htm
│ └── ...
└── ... # 其他你创建的模板风格文件夹
模板风格文件夹 (如 default, pc, mobile)
这是最重要的分类,每个文件夹代表一套独立的、完整的网站皮肤或主题,你可以轻松地在后台切换不同的模板风格,实现网站改版,而无需改动任何数据和PHP文件。
default/: DedeCMS 自带的默认模板风格。pc/: 你可以自定义一个名为pc的文件夹,用于存放电脑端的另一个主题。mobile/: 专门用于移动端(手机、平板)的模板,DedeCMS 会根据用户访问的设备类型,自动调用mobile文件夹下的模板,实现响应式或独立的移动站点。
核心页面模板文件
在每个模板风格文件夹(如 default/)内,都有一些约定俗成的、核心的模板文件:
index.htm: 首页模板,网站的首页就是由这个文件生成的。- *`list_.htm`列表页模板**。
list_article.htm: 文章频道列表页模板。list_product.htm: 产品频道列表页模板。list_频道ID.htm: 特定频道的列表页模板。
- *`article_.htm`内容页模板**。
article_article.htm: 文章内容页模板。article_product.htm: 产品内容页模板。article_频道ID.htm: 特定频道的内容页模板。
search.htm: 搜索结果页模板。feedback.htm: 留言板页面模板。tags.htm: 标签列表页模板。
公共模板文件 (模板包含文件)
为了提高代码复用性和维护性,DedeCMS 模板系统支持文件包含,你通常会将一个页面的公共部分拆分成独立的文件,然后在其他页面中引用它们。

head.htm: 头部文件,通常包含<head>标签、网站标题、CSS/JS 文件引入、主导航菜单等。footer.htm: 底部文件,通常包含版权信息、友情链接、底部统计代码等。header.htm: 有时与head.htm功能类似,但可能指代<body>标签开始的部分,包含 Logo 和顶部导航。channel/: 栏目导航文件夹,存放用于生成各级栏目导航的模板片段。channel/head.htm可能专门用于生成主导航。block/: 区块文件夹,存放一些可复用的功能区块模板,如“热门文章”、“推荐产品”等。
如何使用包含文件?
在模板文件中使用 {dede:include file='head.htm' /} 这样的标签即可将 head.htm 的内容插入到当前位置。
其他重要的相关文件夹
除了 /templets/,还有几个与模板和显示效果密切相关的文件夹:
/static/ 目录
这个目录用于存放 静态资源文件,如 CSS 样式表、JavaScript 脚本、图片、字体等。
/static/
├── css/ # 样式表文件
│ ├── style.css # 主样式表
│ ├── bootstrap.css # 框架样式表
│ └── ...
├── js/ # JavaScript 脚本文件
│ ├── jquery.min.js # jQuery库
│ ├── main.js # 主要JS逻辑
│ └── ...
├── images/ # 图片资源
│ ├── logo.png
│ ├── banner.jpg
│ └── ...
└── fonts/ # 字体文件
└── ...
最佳实践:在模板文件中,引用这些资源时使用绝对路径(以 开头),
<link rel="stylesheet" href="/static/css/style.css">
这样可以确保无论从哪个页面访问,资源路径都是正确的。
/uploads/ 目录
这是 DedeCMS 上传文件的核心目录,不直接与模板文件关联,但模板会显示其中的内容。
/uploads/
├── all/ # 所有上传文件的混合目录
├──images/ # 专门用于上传文章、内容中的图片
├──editor/ # 编辑器默认上传的图片
├──addon/ # 附件
└── ... # 其他分类
模板中的图片标签(如 {dede:field.litpic /})或附件链接,最终都会指向这个目录下的文件。
/data/ 目录
这是一个非常重要的系统目录,普通用户不应直接操作。
/data/cache/: 缓存目录,系统会在这里生成缓存文件(如catalog_cache.php,栏目缓存)以提高访问速度,修改模板或栏目后,可能需要在这里手动删除缓存才能看到效果。/data/tplcache/: 模板编译缓存目录。.htm模板文件会被编译成.php文件并缓存在这里,用于加速页面解析。
工作流程总结
- 用户访问: 用户在浏览器中输入网址,
www.example.com/。 - PHP 脚本执行: DedeCMS 的核心 PHP 脚本(
index.php)被触发。 - 逻辑处理: PHP 脚本根据请求的 URL(首页、列表页、内容页等)和当前设置的 默认模板风格(
default),确定要使用哪个模板文件。 - 模板解析: PHP 引擎加载对应的模板文件(如
/templets/default/index.htm)。 - 标签替换: 引擎会扫描模板文件中的所有 DedeCMS 标签(如
{dede:arclist}、{dede:field.title}等),并从数据库中获取相应的数据来替换这些标签。 - 文件包含: 引擎会处理
{dede:include}标签,将head.htm、footer.htm等文件的内容合并进来。 - 生成 HTML: 所有 PHP 代码和标签都被替换成了纯粹的 HTML 代码,生成一个完整的 HTML 页面。
- 发送给用户: 这个最终的 HTML 页面被发送到用户的浏览器进行显示。
| 文件夹/文件 | 作用 | 关联性 |
|---|---|---|
/templets/ |
核心模板目录,存放所有 .htm 模板文件。 |
直接控制网站外观 |
/templets/style/ |
具体的模板风格文件夹(如 default, mobile)。 |
网站皮肤,可后台切换 |
index.htm |
首页模板。 | 定义首页布局和内容 |
| *`list_.htm`** | 列表页模板。 | 定义文章/产品列表页布局 |
| *`article_.htm`** | 内容页模板。 | 定义文章/产品详情页布局 |
head.htm |
公共头部模板,被其他页面包含。 | 复用头部代码(导航、CSS引入) |
/static/ |
存放 CSS, JS, 图片等静态资源。 | 模板文件通过路径引用这些资源 |
/uploads/ |
存储用户上传的文件。 | 模板通过标签显示此目录中的内容 |
/data/cache/ |
系统缓存目录。 | 修改模板后可能需清除此处缓存才能生效 |
掌握这些文件夹的结构和作用,你就能自如地对 DedeCMS 网站进行定制和开发了。
