将你设计好的静态 HTML5 页面,拆解成织梦 CMS 可以识别和动态调用的模块,而不是直接把整个 HTML 文件扔进去,这样,网站的管理员才能在后台方便地修改文章、产品、图片等内容。

织梦还原html5网页
(图片来源网络,侵删)

我们将这个过程分为三个主要步骤:

  1. 分析静态页面结构:理解你的 HTML5 页面是由哪些部分组成的。
  2. 准备织梦环境和模板:搭建好织梦的目录结构,并创建必要的模板文件。
  3. 模板制作与标签调用:将静态 HTML 中的静态内容替换为织梦的动态标签。

第一步:分析静态 HTML5 页面结构

在开始之前,请先仔细分析你的 HTML5 设计稿(index.html),一个典型的现代网站首页通常包含以下模块:

  • 顶部区域:包含 Logo、主导航菜单、搜索框、用户登录等。
  • 轮播图/焦点图:用于展示重要活动或产品。
  • 产品/服务展示区:以网格或列表形式展示核心业务。
  • 新闻/资讯列表:展示公司新闻、行业动态等。
  • 关于我们/公司简介:简短的介绍模块。
  • 页脚:包含友情链接、联系方式、版权信息、备案号等。

关键点:将页面拆解成这些独立的、功能单一的模块,每个模块未来都可能对应一个独立的织梦模板文件或一个可复用的模板片段。


第二步:准备织梦环境和模板

织梦 CMS 有其固定的文件和目录结构,我们需要遵循这个结构来创建我们的模板。

织梦还原html5网页
(图片来源网络,侵删)

织梦模板目录结构

在你安装的织梦网站根目录下,通常会有一个名为 templets 的文件夹,所有自定义的模板文件都应该放在这里。

你的网站根目录/
├── dede/          (织梦后台程序)
├── include/       (织梦核心程序)
├── uploads/       (上传文件目录)
├── templets/      (模板目录)  <-- 我们主要操作这里
│   ├── default/   (默认模板文件夹,我们不建议修改它)
│   └── my_site/   (创建你自己的模板文件夹,my_site)
│       ├── images/ (存放模板用到的图片)
│       ├── style/  (存放 CSS 文件)
│       ├── js/     (存放 JavaScript 文件)
│       ├── index.htm (首页模板文件)
│       ├── header.htm (头部公共模板)
│       ├── footer.htm (底部公共模板)
│       └── ...     (其他页面模板,如列表页、内容页)

操作

  1. templets 目录下新建一个文件夹,命名如 my_site
  2. 将你的静态 HTML5 页面中的 imagescssjs 文件夹复制到 my_site 文件夹中。
  3. my_site 文件夹中,创建以下模板文件:
    • index.htm:首页模板。
    • header.htm:网站头部(包含 Logo、导航等)。
    • footer.htm:网站底部(包含版权、友情链接等)。

第三步:模板制作与标签调用

这是最核心的一步,我们将用织梦的模板标签替换掉静态 HTML 中的内容。

模板文件头声明

在每个织梦模板文件(如 index.htm, header.htm 等)的最顶部,都必须有固定的声明代码,用于告诉织梦系统如何解析这个文件。

织梦还原html5网页
(图片来源网络,侵删)
{dede:include filename="head.htm"/}

注意head.htm 通常包含 <head> 标签内的所有内容,如 <title>, <meta>, <link>, <style> 等,你也可以直接写在 index.htm 的最顶部,但为了结构清晰,推荐使用 head.htm

一个完整的 head.htm 示例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">{dede:global.cfg_webname/}</title>
<meta name="keywords" content="{dede:global.cfg_keywords/}" />
<meta name="description" content="{dede:global.cfg_description/}" />
<link rel="stylesheet" href="{dede:global.cfg_templets_skin/}/style/style.css">
{dede:include filename="js.htm"/} <!-- 用于引入JS文件 -->
</head>
<body>
  • {dede:global.cfg_webname/}:调用网站后台设置的“网站名称”。
  • {dede:global.cfg_templets_skin/}:调用当前模板的目录路径,如 /templets/my_site,方便我们引用 CSS 和 JS。

公共模板的引用 (header.htm 和 footer.htm)

为了方便维护,网站的头部和 footer 通常被抽离成独立的文件。

index.htm 中引用它们:

{dede:include filename="header.htm"/}
<!-- 这里是首页的主要内容区域 -->
{dede:include filename="footer.htm"/}

制作 header.htm 将你静态 HTML 中的 <header> 部分代码放进来,并替换掉静态内容。

<!-- header.htm -->
<header>
    <div class="logo">
        <a href="{dede:global.cfg_homeurl/}/">
            <!-- {dede:global.cfg_webname/} 也可以直接显示文字Logo -->
            <img src="{dede:global.cfg_templets_skin/}/images/logo.png" alt="{dede:global.cfg_webname/}">
        </a>
    </div>
    <nav>
        <ul>
            <!-- 调用顶级栏目 -->
            {dede:channel type='top' row='8'}
            <li><a href="[field:typeurl/]">[field:typename/]</a></li>
            {/dede:channel}
        </ul>
    </nav>
    <div class="search">
        <form action="{dede:global.cfg_cmsurl/}/search.php" name="formsearch">
            <input type="hidden" name="kwtype" value="1" />
            <input type="text" name="q" placeholder="搜索...">
            <button type="submit">搜索</button>
        </form>
    </div>
</header>
  • {dede:channel type='top' row='8'}:调用顶级栏目,最多显示8个。
  • [field:typeurl/][field:typename/]:分别是栏目的链接和名称。

制作 footer.htm 同样,将静态 HTML 中的 <footer> 部分放进来。

<!-- footer.htm -->
<footer>
    <div class="footer-content">
        <p>版权所有 &copy; 2025 {dede:global.cfg_webname/} All Rights Reserved.</p>
        <p><a href="http://beian.miit.gov.cn/" target="_blank">{dede:global.cfg_beian/}</a></p>
    </div>
</footer>

区域的动态化

变成动态内容的关键,我们以常见的“轮播图”和“产品展示”为例。

轮播图

假设你的静态 HTML 轮播图是这样的:

<!-- 静态轮播图 -->
<div class="slider">
    <div class="slide-item"><img src="images/slide1.jpg" alt="图片1"></div>
    <div class="slide-item"><img src="images/slide2.jpg" alt="图片2"></div>
</div>

在织梦中,轮播图通常来自一个“专题”或者一个特定的栏目,我们假设你创建了一个名为“首页幻灯片”的栏目(ID=5),并把所有幻灯片文章都放在这个栏目下。

织梦模板应该这样写:

<!-- 动态轮播图 -->
<div class="slider">
    {dede:arclist flag='h' typeid='5' row='5'}
    <div class="slide-item">
        <a href="[field:arcurl/]">
            <img src="[field:litpic/]" alt="[field:title/]">
        </a>
    </div>
    {/dede:arclist}
</div>
  • {dede:arclist ...}:织梦最核心的列表标签,用于获取文章列表。
  • flag='h':调用带有 h 标志的文章(幻灯片标志)。
  • typeid='5':只调用 ID 为 5 的栏目下的文章。
  • row='5':调用 5 篇文章。
  • [field:litpic/]:文章的缩略图。
  • [field:arcurl/]:文章的链接地址。
  • [field:title/]:文章的标题。

产品/服务展示

假设你的静态 HTML 是这样:

<!-- 静态产品展示 -->
<div class="products">
    <div class="product-item">
        <img src="images/product1.jpg" alt="产品1">
        <h3>产品名称一</h3>
        <p>这里是产品简介...</p>
    </div>
    <div class="product-item">
        <img src="images/product2.jpg" alt="产品2">
        <h3>产品名称二</h3>
        <p>这里是产品简介...</p>
    </div>
</div>

假设你的产品都在一个 ID 为 3 的栏目下。

织梦模板应该这样写:

<!-- 动态产品展示 -->
<div class="products">
    {dede:arclist typeid='3' row='4' titlelen='24' infolen='80'}
    <div class="product-item">
        <a href="[field:arcurl/]">
            <img src="[field:litpic/]" alt="[field:title/]">
        </a>
        <h3><a href="[field:arcurl/]">[field:title/]</a></h3>
        <p>[field:description function='cn_substr(@me, 80)'/]...</p>
    </div>
    {/dede:arclist}
</div>
  • typeid='3':调用 ID 为 3 的栏目。
  • row='4':显示 4 个产品,len='24'`:标题长度限制为24个字符。
  • infolen='80':简介长度限制为80个字符。
  • [field:description function='cn_substr(@me, 80)'/]:对文章摘要进行截取,只显示前80个字符。

新闻列表

新闻列表和产品展示类似,通常调用一个“新闻中心”栏目(ID=2)下的文章。

<!-- 动态新闻列表 -->
<div class="news-list">
    <h2>最新资讯</h2>
    <ul>
        {dede:arclist typeid='2' row='10'}
        <li>
            <span class="date">[field:pubdate function='MyDate('Y-m-d', @me)'/]</span>
            <a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a>
        </li>
        {/dede:arclist}
    </ul>
</div>
  • [field:pubdate function='MyDate('Y-m-d', @me)'/]:对发布日期进行格式化,输出为 年-月-日 的格式。

第四步:后台设置与最终生效

  1. 上传模板文件:将你制作好的所有模板文件(index.htm, header.htm, footer.htm 等)和相关的 CSS、JS、图片文件,通过 FTP 上传到 templets/my_site/ 目录下。
  2. 后台设置模板
    • 登录织梦后台。
    • 进入 “系统” -> “系统基本参数” -> “核心设置”
    • 找到 “默认主页模板” 选项,将其值修改为 my_site/index.htm (注意:是文件夹名/文件名)。
    • 点击“保存”。
  3. 清理缓存
    • 在后台首页,点击右上角的 “生成” 菜单。
    • 选择 “一键更新网站”,然后勾选 “更新首页” 和 “更新HTML”。
    • 点击 “开始执行”。
  4. 访问网站:访问你的网站首页,你应该就能看到一个由织梦动态驱动的、和你设计稿一模一样的网站了,管理员可以在后台轻松地修改栏目、发布文章,网站内容就会自动更新。

总结与最佳实践

  • 模块化思维:永远将页面拆分成可复用的模块(header, footer, 轮播图, 列表等)。
  • 善用公共模板{dede:include} 是你的好朋友,能极大提高开发效率和后期维护性。
  • 标签是核心:花时间熟悉 arclistchannellistartlist 等核心标签的用法和参数。
  • CSS/JS 路径:始终使用 {dede:global.cfg_templets_skin/}/ 来引用模板内的资源,避免路径错误。
  • 命名规范:给你的模板文件夹和文件起一个有意义的名字,方便管理。

通过以上步骤,你就可以成功地将一个静态的 HTML5 网页“还原”并“适配”到功能强大的织梦 CMS 系统中了。