船说 CMS 模板修改会影响升级吗

chinaz
chinaz 初级会员超兽战士
发布于 2026-10-08 15:41 ·1 浏览 ·0 回复

学完这篇你能得到明确答案:改船说 CMS 模板会不会影响升级、哪些改法会被升级覆盖、怎么做才能既改模板又不怕升级。

第一步:先确认升级到底覆盖哪些文件

结论是:**会不会影响升级,不取决于你改了多少,而取决于你改的文件在不在升级包的覆盖清单里。** 所以第一步不是动手改,而是先看清升级包的目录结构。

拿到升级包(通常是 xxx_update.zip 或 xxx_patch.tar.gz)后,先解压到临时目录,不要直接覆盖网站根目录:

mkdir -p /tmp/upgrade && cd /tmp/upgrade
unzip ~/xxx_update.zip
find . -type d -maxdepth 2

船说 CMS 的升级包一般只包含这几类目录:app/(核心程序)、public/static/(前端静态资源)、template/(默认模板)、data/(配置与缓存占位)。

注意:只要升级包里出现了 template/ 目录,就说明官方模板会被整体覆盖。你在后台「模板管理 → 模板文件」里点「编辑」保存的修改,本质也是写回这些磁盘文件,同样会被覆盖,不存在"后台改的就安全"这一说。

第二步:备份,再备份一次

这一步要拿到一个"升级失败也能一键回滚"的状态。三个东西必须备份:数据库、模板目录、配置文件。


mysqldump -u root -p chuanshuo_db > ~/backup_db_$(date +%F).sql

# 模板目录与配置
tar -czf ~/backup_template_$(date +%F).tar.gz template/
cp config/database.php ~/backup_database.php

同时记下后台首页右下角显示的版本号,比如从 5.2.1 升到 5.3.0,这个版本号决定了你后面要查哪一份升级说明。

第三步:改模板时用"复制一套"而不是改默认模板

这一步的目标是让你的修改和官方模板物理隔离。具体做法:

  1. 进入后台「模板管理 → 模板列表」,找到默认模板目录名(常见是 default 或 default_mobile)。
  2. 用 FTP 或宝塔面板的文件管理器,把整个 template/default/ 复制一份,重命名为 template/mytheme/。
  3. 回到后台「模板管理 → 模板列表」,把 mytheme 设为当前启用模板。
  4. 之后所有 HTML、CSS、JS 修改都在 mytheme/ 里做。

这样升级包覆盖的是 template/default/,你的 mytheme/ 不受影响。升级后只需把官方 default/ 的改动对比着搬过来。

注意:模板里如果有 {include file="..."} 之类的引用路径写死了 default,复制后要一并改成 mytheme,否则前台会报模板找不到。

第四步:能用配置和插件解决的,别改模板文件

优先级从高到低:后台配置项 > 自定义变量/广告位/导航管理 > 插件钩子 > 模板文件。前三种升级都不会覆盖,因为它们存在数据库里。

比如改导航文字、改页脚版权、加统计代码,后台「系统设置 → 网站设置」和「内容管理 → 导航管理」里就能完成,完全没必要动 .html 文件。

第五步:升级时用 diff 合并,而不是"有冲突就全丢"

升级执行前,先把新包里的 template/default/ 和服务器上旧的 template/default/ 做一次对比:

diff -ru template/default/ /tmp/upgrade/template/default/ > template_diff.txt

打开 template_diff.txt,凡是 + 开头的是官方新增(要保留),- 开头的是官方删除(考虑跟随),你自己改过的文件会以整块差异的形式出现——这类文件在覆盖前先单独备份,覆盖后手工把官方改动合进去。

如果你一开始就把站点纳入 Git 管理(git init && git add . && git commit),这一步会简单得多:升级后 git diff 一眼就能看出官方改了什么、你改了什么。

第六步:升级后清缓存 + 回归检查

升级完成、模板合并完成后,进入后台「系统设置 → 缓存管理」,点「清除全部缓存」,再删除 runtime/ 目录下的临时文件。然后依次检查:首页、列表页、内容详情页、搜索页、手机端页面,重点看模板标签有没有报错提示。

小结

  • 改模板会不会影响升级,看的是你改的文件是否在升级包覆盖范围内;改默认模板目录,基本一定会被覆盖。
  • 安全做法是复制一套模板改名启用,把修改和官方文件物理隔离。
  • 能用后台配置、自定义变量、插件解决的,别直接改模板文件,这些存数据库,升级不动。
  • 升级前必备份数据库、模板目录、配置文件,并记下当前版本号。
  • 升级时用 diff -ru 或 Git 对比合并,别"有冲突就全丢"或"直接全覆盖"。
  • 升级后清缓存,逐页回归检查。
版权声明:本文来自 GJ站长论坛《船说 CMS 模板修改会影响升级吗》
原文链接:https://www.gj0.com/thread-1035.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~