DedeCMS 的目录结构经过多个版本的演变,但核心思想是一致的:将网站的前端表现文件与后端程序逻辑文件分离,以方便管理和维护。

下面我们以最经典的 DedeCMS 5.7 版本 为例进行说明,这个版本的目录结构非常具有代表性,后续版本(如 DedeCMS 7.x)也基本沿用了这个逻辑。
核心目录结构总览
我们来看一下 DedeCMS 安装后的主要目录结构:
dedecms/
├── dede/ # 后台管理程序目录
├── plus/ # 辅助程序目录
├── member/ # 会员中心目录
├── special/ # 专题目录
├── data/ # 系统缓存数据目录
├── images/ # 网站上传的图片目录
├── uploads/ # 网站上传的文件目录
├── include/ # 核心程序类库目录
├── templets/ # 网站模板目录 (重点!)
│ ├── default/ # 默认模板目录
│ │ ├── style/ # CSS 样式文件目录 (重点!)
│ │ ├── js/ # JavaScript 文件目录 (重点!)
│ │ └── ... # 其他模板文件 (如 .htm)
│ └── ... # 其他自定义模板目录
├── static/ # 静态资源目录 (部分版本或自定义主题会使用)
├── favicon.ico # 网站图标
└── index.php # 网站入口文件
CSS 和 JS 文件的具体位置
CSS 和 JS 文件主要存放在 templets/ 目录下,因为它们与特定的模板主题(皮肤)紧密相关。
CSS 文件目录
主要位置:/templets/你的模板名称/style/

这是存放 CSS 样式表文件的核心目录,当你安装一个新的模板(比如名为 mytheme)时,该模板的 CSS 文件通常会放在:
/templets/mytheme/style/
常见文件:
style.css或main.css: 主样式表,定义了网站的全局样式、布局、颜色等。global.css: 全局公共样式,可能包含一些通用的类定义。index.css: 首页专用样式。list.css: 列表页专用样式。article.css: 文章内容页专用样式。
如何引用:
在模板的 HTML 文件(如 index.htm, list_article.htm)中,通过 <link> 标签来引入 CSS 文件,路径是相对于模板目录的。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">{dede:global.cfg_webname/}</title>
<!-- 引入默认模板下的 style.css 文件 -->
<link rel="stylesheet" type="text/css" href="{dede:global.cfg_cmspath/}/templets/default/style/style.css" />
</head>
<body>
<!-- 网站内容 -->
</body>
</html>
注意: {dede:global.cfg_cmspath/} 是 DedeCMS 的全局变量,代表你的网站根目录,这样能确保路径在任何情况下都正确。
JavaScript 文件目录
主要位置:/templets/你的模板名称/js/
与 CSS 类似,JS 文件也存放在对应模板目录下的 js 文件夹中。
/templets/mytheme/js/
常见文件:
jquery.js或jquery.min.js: jQuery 库,非常常用。global.js: 全局 JS 文件,包含网站通用的交互脚本,如导航菜单、图片轮播等。index.js: 首页专用脚本。check.js: 表单验证相关的脚本。
如何引用:
在模板的 HTML 文件中,通过 <script> 标签来引入 JS 文件,通常放在 </body> 标签之前,以加快页面加载速度。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">{dede:global.cfg_webname/}</title>
<link rel="stylesheet" href="{dede:global.cfg_cmspath/}/templets/default/style/style.css" />
</head>
<body>
<!-- 网站内容 -->
<!-- 引入 jQuery 库 -->
<script type="text/javascript" src="{dede:global.cfg_cmspath/}/templets/default/js/jquery.min.js"></script>
<!-- 引入全局 JS 文件 -->
<script type="text/javascript" src="{dede:global.cfg_cmspath/}/templets/default/js/global.js"></script>
</body>
</html>
其他静态资源目录
除了 CSS 和 JS,DedeCMS 还有一些其他重要的静态资源目录。
/images/ 目录
这个目录专门用于存放 用户通过后台或表单上传的图片,比如文章中的插图、产品图片、会员头像等。
- 路径:
/images/ - 用途: 动态内容图片存储,当你使用
{dede:field.body/}或{dede:img}等标签调用文章内容时,其中的图片路径会自动指向这个目录。
/uploads/ 目录
与 /images/ 类似,/uploads/ 目录用于存放 用户上传的其他文件,如压缩包、文档、视频等。
- 路径:
/uploads/ - 用途: 动态文件资源存储,系统通常会在这里创建子目录来分类管理不同类型的上传文件,
uploads/allimg/(所有图片),uploads/soft/(软件),uploads/media/(媒体文件)。
/static/ 目录
这是一个 可选但推荐 的目录,在较新版本的 DedeCMS 或一些高级主题中可以看到。
- 路径:
/static/ - 用途: 用于存放 与主题无关的、全局共享的静态资源。
/static/css/: 存放公共的 CSS 文件。/static/js/: 存放公共的 JS 文件,jQuery、Bootstrap 等第三方库。/static/images/: 存放网站通用的图标、背景图等。
使用 /static/ 目录的好处:
- 解耦: 即使你更换了模板(
templets目录下的主题),这些公共资源依然可用,无需重复上传。 - 缓存友好: 浏览器可以更有效地缓存这些文件,提高网站性能。
- 管理方便: 所有共享资源集中管理,结构清晰。
总结与最佳实践
| 目录 | 主要用途 | 文件类型 | 示例路径 |
|---|---|---|---|
/templets/default/style/ |
主题样式 | CSS | /templets/default/style/style.css |
/templets/default/js/ |
主题脚本 | JavaScript | /templets/default/js/global.js |
/images/ |
用户上传图片 | JPG, PNG, GIF 等 | /images/2025/10/abc.jpg |
/uploads/ |
用户上传文件 | ZIP, DOC, PDF, MP4 等 | /uploads/soft/xyz.zip |
/static/ |
全局共享资源 (可选) | CSS, JS, 图标等 | /static/js/jquery.min.js |
最佳实践建议:
- 修改模板时,只操作
templets目录:如果你想修改网站的样式或功能,请务必在templets/你的模板名称/目录下进行操作,而不是直接修改程序核心文件,这样在升级 DedeCMS 时,你的修改不会被覆盖。 - 善用全局变量:在模板中引用 CSS 和 JS 时,始终使用
{dede:global.cfg_cmspath/}来构建绝对路径,避免因页面层级不同导致路径错误。 - 考虑使用
/static/目录:如果你开发的网站比较复杂,或者使用了多个主题,建议将 jQuery、Bootstrap 等第三方库和公共样式/脚本放到/static/目录下,以实现更好的复用和维护性。
