织梦栏目生成html,如何实现?

99ANYc3cd6
预计阅读时长 13 分钟
位置: 首页 织梦建站 正文

将动态的PHP页面(如 list.php?tid=1)预先转换成静态的HTML文件(如 html/1/index.html),以便用户访问时,服务器直接返回HTML文件,速度更快,对搜索引擎也更友好。

织梦 栏目生成html
(图片来源网络,侵删)

我们将从两个方面来讲解:

  1. 后台手动生成:一次性生成所有或指定栏目的HTML。
  2. 自动生成:通过修改模板,让栏目在更新内容时自动生成HTML。

后台手动生成HTML

这是最直接、最常用的方法,适用于网站初次上线、内容大量更新或需要重新生成整个网站时。

步骤:

  1. 登录织梦后台:使用你的管理员账号登录。

  2. 进入“生成栏目”页面

    织梦 栏目生成html
    (图片来源网络,侵删)
    • 在左侧菜单栏中,找到并点击 “生成” 选项。
    • 在下拉菜单中,选择 “生成栏目”
  3. 选择生成选项

    • 栏目选项:这是最关键的一步,你可以选择生成哪些栏目。
      • 选择栏目:默认是“仅选择当前栏目”,你可以点击它,弹出一个窗口,勾选你想要生成HTML的栏目,可以是单个、多个或全选。
      • 生成所有栏目:勾选此项,将忽略上面的“选择栏目”,生成所有栏目的HTML。
      • 生成子栏目:如果你勾选了某个顶级栏目,并勾选此项,那么该栏目及其所有下级栏目的HTML都会被生成,这对于生成一个完整的频道网站非常有用。
    • 高级选项
      • 栏目生成规则:通常使用默认的规则即可,织梦默认的规则是 栏目目录/index.html,一个ID为 5 的栏目,会生成在 /html/5/index.html,你可以自定义,但需要确保你的模板文件(list_*.htm)中的路径调用与之匹配。
      • 生成HTML文件:默认勾选,表示生成 .html 文件,如果取消勾选,织梦会生成一个 .php 文件,内容依然是静态的,但文件后缀是动态的,这不符合静态化的初衷,通常保持默认即可。
      • 不生成栏目页:如果你只想更新列表页里的文章,可以勾选此项,只更新文章页,不重新生成栏目列表页本身。
  4. 开始生成

    • 设置好所有选项后,点击页面底部的 “开始生成” 按钮。
    • 系统会开始处理,你可以在页面上看到生成进度和日志,如果栏目内容很多,可能需要一些时间。
  5. 验证结果

    • 生成完成后,去你网站存放静态文件的目录(默认是 /html/)下查看。
    • 检查对应的栏目文件夹下是否生成了 index.html 文件。
    • 在浏览器中访问这个栏目的地址(http://www.yoursite.com/html/5/index.html),看看页面是否正常显示。

自动生成HTML(推荐)

手动生成适合一次性操作,但日常更新内容时,每次都要手动去生成栏目非常麻烦,通过修改模板,可以实现“更新即生成”的自动化流程。

核心原理:

织梦的模板文件中,有一个特殊的标签 dede:arclist(用于栏目列表页)和 dede:list(用于文章列表页),它们有一个属性 ismake,控制着由它们调用的文章是否在发布时自动生成HTML。

步骤:

  1. 找到并打开你的栏目列表页模板

    • 这个模板文件通常位于织梦后台的 “模板” -> “模板管理” -> “默认模板管理” 中。
    • 找到与你所用模板风格对应的 “栏目列表页模板”,文件名通常是 list_*.htmlist_default.htm)。
    • 点击 “修改” 按钮来编辑它。
  2. 修改 dede:listdede:arclist:

    • 在你的模板文件中,找到用于循环输出文章列表的标签,通常是 {dede:list}
    • {dede:list} 标签里,添加 ismake='yes' 属性。

    修改前:

    {dede:list}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
            <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
        </li>
    {/dede:list}

    修改后(自动生成):

    {dede:list ismake='yes'}
        <li>
            <a href="[field:arcurl/]">[field:title/]</a>
            <span>[field:pubdate function="MyDate('Y-m-d',@me)"/]</span>
        </li>
    {/dede:list}
    • ismake='yes' 的作用是:当通过后台发布、更新或删除一篇属于此栏目的文章时,织梦会自动重新生成这个栏目的列表页HTML文件。
  3. 保存模板

    • 修改完成后,点击 “保存” 按钮。
  4. 测试自动生成

    • 进入 管理” -> “添加文档”,为这个栏目添加一篇新文章。
    • 发布成功后,直接访问该栏目的静态HTML地址(如 /html/5/index.html)。
    • 如果能看到你刚刚添加的新文章,说明自动生成功能已经生效了。

重要提示

  • {dede:list}{dede:arclist} 的区别
    • {dede:list}:主要用于栏目列表页,循环调用当前栏目下的所有文章。修改它并添加 ismake='yes',可以实现更新文章时自动重新生成当前栏目页。
    • {dede:arclist}:功能更强大,可以跨栏目调用文章,常用于首页、首页封面等地方。修改它并添加 ismake='yes',可以实现更新被调用的文章时,自动重新生成调用它的那个页面(比如首页)。
  • 性能考虑:如果你的网站文章非常多,每次更新一篇文章都去重新生成整个栏目列表,可能会对服务器造成一定压力,但对于大多数中小型网站来说,这是完全没问题的,也是织梦的标准做法。

常见问题与最佳实践

  1. 为什么生成HTML后,访问的还是动态页面?

    • 原因:你的网站开启了“动态浏览”模式。
    • 解决方法:进入后台 “系统” -> “系统基本参数” -> “核心设置”,找到 “是否使用伪静态” 选项,确保它被设置为“是”(或者根据你的需求选择“否”,但“是”是SEO推荐选项),检查你的 “栏目目录默认主页命名规则”“列表命名规则”,确保它们和你生成的HTML文件名一致(通常是 index.html)。
  2. 栏目页不更新,文章页更新了怎么办?

    • 原因:你的模板文件里 {dede:list} 标签没有加上 ismake='yes' 属性。
    • 解决方法:按照第二部分的说明,修改你的 list_*.htm 模板文件,加上 ismake='yes'
  3. 最佳实践总结

    • 网站上线前:使用后台“生成栏目”功能,一次性生成所有栏目的HTML,确保网站是静态的。
    • 日常维护:修改所有 list_*.htm 模板,为 {dede:list} 标签加上 ismake='yes',实现文章更新时栏目页的自动更新。
    • 修改栏目后:如果你修改了栏目的名称、简介或排序,最好手动去“生成栏目”页面,重新生成一下这个栏目的HTML,以确保页面显示的是最新信息。
    • 检查目录权限:确保你的网站 /html/ 目录以及其子目录有Web服务器的写入权限,否则无法生成HTML文件。

通过以上方法,你就可以完全掌握织梦CMS的栏目HTML生成,让你的网站既高效又易于维护。

-- 展开阅读全文 --
头像
C语言字符如何转ASCII码?
« 上一篇 今天
dede 列表页也分页样式
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码