像拆玩具一样定制oh-my-zsh:改造robbyrussell主题

发布时间:2026/10/9 8:25:56
像拆玩具一样定制oh-my-zsh:改造robbyrussell主题 1. 为什么要改robbyrussell默认主题的痛点与定制思路1.1 先看清楚robbyrussell到底做了什么oh-my-zsh 安装完成后绝大多数人见到的第一个提示符长这样userhostname ~/workspace/project git:(main) $这就是 robbyrussell 主题的默认渲染结果。它的信息量其实不小当前用户、主机名、所在目录、git 分支、权限符。但说实话我用了一段时间之后越看越觉得不对劲。默认的青色目录 绿色用户名的组合在深色终端里还可以白天在浅色背景下简直看不清git 分支信息虽然有但只显示分支名不显示当前是否有未提交的改动最让我受不了的是当目录层级一深整行提示符比命令还长看一眼都要愣半天。我这人有个习惯凡是每天要看几十次的东西就值得花时间优化。终端提示符恰恰是程序员每天盯得最多的界面元素之一。robbyrussell 好是好但它是给所有人用的默认方案不是给我用的方案。这也是这篇文章的初衷教你像拆玩具一样把 robbyrussell 拆开改成一个真正顺手的样子。1.2 修改之前先搞懂oh-my-zsh的加载机制很多人上来就直接编辑~/.oh-my-zsh/themes/robbyrussell.zsh-theme这个文件改完发现不生效或者一升级 oh-my-zsh 就全部白改。这里面的关键坑在于没搞清楚 oh-my-zsh 的主题加载机制。整个链路是这样的当你打开一个终端窗口zsh 会先读取~/.zshrc文件这个文件里有一行ZSH_THEMErobbyrussell。oh-my-zsh 的启动脚本根据这个变量去~/.oh-my-zsh/themes/目录下查找对应的.zsh-theme文件然后把它加载进来执行。加载完成之后主题文件里定义的PROMPT变量就决定了你的提示符长什么样。所以实际操作上有两个完全不同的修改层次修改ZSH_THEME变量换成另一个现成主题修改主题文件内部定义的PROMPT等变量定制现有主题我这个场景是第二种。但注意我强烈不建议直接编辑~/.oh-my-zsh/themes/robbyrussell.zsh-theme原文件。oh-my-zsh 的升级脚本在更新时会覆盖这个目录下的所有文件你改的东西会全部丢失。正解是新建一个自定义主题文件放进~/.oh-my-zsh/custom/themes/目录。oh-my-zsh 加载主题时会优先查找这个目录它的优先级更高而且升级时不会被触碰。这个习惯我从第一次改主题就养成了后来每次升级 oh-my-zsh 都没出过问题。具体操作很简单mkdir -p ~/.oh-my-zsh/custom/themes cp ~/.oh-my-zsh/themes/robbyrussell.zsh-theme ~/.oh-my-zsh/custom/themes/myrobby.zsh-theme然后修改~/.zshrc里的配置ZSH_THEMEmyrobby保存后执行source ~/.zshrc就能看到效果。这样改主题文件怎么折腾都不心疼随时可以回退到默认版。2. 主题文件解剖一条配置是怎么控制整个提示符的2.1 从主题文件到渲染结果的完整链路robbyrussell 的完整主题源码其实就这么几行PROMPT%{$fg_bold[green]%}%n%m%{$reset_color%} %{$fg[cyan]%}%~%{$reset_color%} $(git_prompt_info) %{$fg[blue]%}$%{$reset_color%} PROMPT2%{$fg[cyan]%}%_%{$reset_color%} ZSH_THEME_GIT_PROMPT_PREFIXgit:( ZSH_THEME_GIT_PROMPT_SUFFIX) ZSH_THEME_GIT_PROMPT_DIRTY* ZSH_THEME_GIT_PROMPT_CLEAN别看代码短信息密度相当高。这一行PROMPT拆开看是由好几段拼接起来的先是连接符里面夹着绿色加粗的%n%m也就是用户名主机名然后%{$reset_color%}把颜色重置接着是青色加粗的%~即当前目录路径再重置颜色然后用$(git_prompt_info)调用了 oh-my-zsh 内置的一个函数负责在 git 仓库里输出分支状态最后以蓝色$结尾。%{...%}这个包装是为了告诉 zsh 括号里面的内容不占实际屏幕宽度。因为颜色转义序列在终端里是不可见字符如果你不告诉 zsh 这一点它就算不对提示符的实际长度命令换行时会出现光标错位、输入重叠的诡异现象。这里最容易被忽略的是PROMPT2。它不是主提示符是命令没有输入完、zsh 等你继续输入时显示的次级提示符。比如你输入了一个for循环或者多行命令zsh 会自动用PROMPT2作为续行前缀。robbyrussell 里它显示的是%_也就是当前正在解析的 shell 结构比如if、for、while这些关键词。我之前有个同事把PROMPT2改得特别花哨结果写多行命令时屏幕乱成一团后来他才明白次级提示符也得单独设计不能跟主提示符共用同一套逻辑。2.2 颜色代码与格式转义的速查要点修改主题文件本质上就是改这些转义符。我整理了一份常用的对照改主题时随手看一眼比查文档快得多。转义符作用示例%n当前用户名root 显示 root%m主机名短格式my-mac 显示 my-mac%~当前目录带~缩写/Users/me/proj显示~/proj%d当前日期显示2025/01/18%D{%H:%M}当前时间可自定义格式显示14:30%#权限符root 显示#普通用户显示%对应提示符末尾%_当前解析的 shell 结构续行显示for等%{$fg[red]%}切换到红色前景后续文本变红%{$fg_bold[green]%}切换到绿色加粗后续文本变绿加粗%{$reset_color%}重置所有颜色属性恢复默认样式%(条件.真值.假值)条件表达式三元判断%(!.#.%)颜色名除了red、green、cyan、blue、yellow、magenta、white、black这 8 个基础色还有带_bold后缀的加粗版本以及fg_bold这种把加粗放进变量里的写法。如果你用 256 色终端还可以用$FG[编号]这样的方式用到更多颜色比如$FG[208]是橙红色。不过 robbyrussell 这种极简主题用基础色就够引入太多颜色反而显得杂乱。另一个需要注意的点是转义里的嵌套顺序。%{$fg_bold[green]%}%n%m%{$reset_color%}这段是把颜色设置放在文本之前文本结束立刻重置。如果不重置后面的所有内容都会带着绿色继续渲染一直延续到整个提示符结束看起来就像有人在提示符上打了条荧光绿的标记。我第一次改主题时偷懒少写了几个%{$reset_color%}出来的效果就像彩虹糖中毒了一样。所以说每一段颜色都要有始有终这算是我改主题踩过的第一个坑。2.3 git_prompt_info 究竟在哪定义的刚开始改主题的人经常会问一个问题$(git_prompt_info)这个函数为什么在主题文件里没有定义它却能正常工作这个函数的实际定义在~/.oh-my-zsh/lib/git.zsh文件里oh-my-zsh 在加载主题之前会先把lib/目录下的所有公共函数加载进来。也就是说主题文件里调用的工具函数其实是框架预置的你可以在任何自定义主题里继续使用这些函数不用自己实现。git_prompt_info的返回值由几个环境变量控制robbyrussell 主题文件里定义的那三行ZSH_THEME_GIT_PROMPT_PREFIX、ZSH_THEME_GIT_PROMPT_SUFFIX、ZSH_THEME_GIT_PROMPT_DIRTY就是在配置它的输出格式。默认时它会在 git 仓库中输出类似git:(main)这样的内容如果当前分支有未提交的改动就变成git:(main*)那个星号由DIRTY变量定义值为空字符串表示干净。理解了这个机制你就能自由扩展了。比如我想让 git 分支显示得更直观可以这样改ZSH_THEME_GIT_PROMPT_PREFIX%{$fg[magenta]%}[ ZSH_THEME_GIT_PROMPT_SUFFIX]%{$reset_color%} ZSH_THEME_GIT_PROMPT_DIRTY%{$fg[red]%}✗%{$reset_color%} ZSH_THEME_GIT_PROMPT_CLEAN%{$fg[green]%}✓%{$reset_color%}这段配置的意思是分支外层的方括号用洋红色如果有未提交改动在括号里显示红色叉号如果全部提交干净了显示绿色对勾。这样一眼就能看出当前仓库的状态不用额外敲git status。当然✓和✗这两个符号需要字体支持我的建议是直接用等宽字体里自带这些符号的版本比如 JetBrains Mono、Fira Code、Source Code Pro 的新版本都能正常显示。3. 实操按你习惯定制robbyrussell主题3.1 最小改动方案调整颜色和布局如果只是想让 robbyrussell 的配色看得舒服一点改动量非常小。把主题文件复制到自定义目录后我尝试过很多种搭配最后最常用的一套是PROMPT%{$fg_bold[green]%}%n%m%{$reset_color%} %{$fg_bold[blue]%}%~%{$reset_color%} $(git_prompt_info) %{$fg_bold[yellow]%}$%{$reset_color%} 改动就两处目录部分从普通青色改成了加粗蓝色$符号从蓝色改成了加粗黄色。别小看这两处变化实际观感完全不一样了。在深色终端下蓝色加粗的目录路径比青色更容易聚焦黄色$是整行的入口点你的注意力会不自觉地落在那里。在浅色终端下黄色也比蓝色耐用得多。如果你觉得整行太长可以把用户名和主机名去掉。我试过在云服务器上操作时那些机器的主机名又长又绕每次显示都占掉一截去掉之后清爽得多。但要留个心眼如果你同时管理多台服务器去掉主机名以后很容易在执行命令时搞不清自己登录的是哪一台机器。我因为这事儿在错误的机器上跑过rm -rf幸好目录写错了没删掉所以现在凡是生产服务器我都保留主机名只是把它改成简短一截的%m短格式。3.2 给提示符加上时间和虚拟环境信息我日常最依赖的两个改动一是显示时间二是显示 Python 虚拟环境。时间这个东西平时你可能觉得多余但当你盯着终端翻历史记录的时候就知道它有多重要了。我经常遇到这种情况半小时前跑了个测试现在回来看输出根本不知道那是几点跑的。在提示符上加上时间配合终端的历史记录整个操作轨迹就非常清晰了。改法是在PROMPT的最前面加一段PROMPT%{$fg[green]%}[%D{%H:%M}]%{$reset_color%} %{$fg_bold[green]%}%n%m%{$reset_color%} %{$fg_bold[blue]%}%~%{$reset_color%} $(git_prompt_info) %{$fg_bold[yellow]%}$%{$reset_color%} %D{%H:%M}会渲染成[14:30]这样的格式放在提示符最前边一眼能扫到。注意这个格式里的{%H:%M}是 zsh 的strftime格式占位H代表小时M代表分钟可以自由改成%H:%M:%S精确到秒或者加上日期%y/%m/%d %H:%M。虚拟环境信息是 Python 开发者的刚需。如果你经常在多个venv、conda 环境之间切换指不定哪天就在错误的环境里执行了pip install装了一堆不该装的包。zsh 里获取虚拟环境名很简单就是读取$VIRTUAL_ENV环境变量然后用basename提取最后一段路径PROMPT%{$fg[green]%}[%D{%H:%M}]%{$reset_color%} %{$fg[magenta]%}${VIRTUAL_ENV_PROMPT}%{$reset_color%} %{$fg_bold[green]%}%n%m%{$reset_color%} %{$fg_bold[blue]%}%~%{$reset_color%} $(git_prompt_info) %{$fg_bold[yellow]%}$%{$reset_color%} 这里直接用$VIRTUAL_ENV_PROMPT是因为新版 Python 的 venv 模块会自动在激活环境时设置这个变量它的值通常带有尾随空格比如(venv)连格式都不用自己调直接塞进提示符就能用。如果你用的是老版本 Python 或者 conda可以退而求其次用${${VIRTUAL_ENV:t}:(${VIRTUAL_ENV:t}) }这种写法。这个表达式的意思是如果VIRTUAL_ENV变量存在就取出它的最后一段路径包上括号不存在就什么都不输出。整个过程不会报错在没有虚拟环境时也完全不影响提示符的渲染。我自己实测下来magenta 紫色的环境名是整行提示符里最抢眼的信息基本不可能再犯进错环境的低级错误。3.3 把git状态信息做得更顺手robbyrussell 默认的分支显示是普普通通的文本分支一多视觉上平平无奇。我用了一段时间后把 git 信息做成了带颜色区分的形式前面提过的红叉绿勾就是用ZSH_THEME_GIT_PROMPT_DIRTY和ZSH_THEME_GIT_PROMPT_CLEAN控制的。但光有分支状态还远远不够我经常需要知道当前分支和远程分支有没有分叉、有无未推送的提交。oh-my-zsh 其实内置了相关函数只是 robbyrussell 这个极简主题根本没有调用它们。比如git_prompt_status这个函数可以告诉我们暂存区、工作区、未追踪文件的改动情况。函数定义在lib/git.zsh它的输出由下面这几个变量控制ZSH_THEME_GIT_PROMPT_ADDED%{$fg[green]%} ✚ ZSH_THEME_GIT_PROMPT_MODIFIED%{$fg[blue]%} ✹ ZSH_THEME_GIT_PROMPT_DELETED%{$fg[red]%} ✖ ZSH_THEME_GIT_PROMPT_UNTRACKED%{$fg[yellow]%} ? ZSH_THEME_GIT_PROMPT_RENAMED%{$fg[magenta]%} ➜ ZSH_THEME_GIT_PROMPT_UNMERGED%{$fg[cyan]%} ═这些变量同样可以在自定义主题文件里覆盖。设置好之后再把PROMPT里的$(git_prompt_info)替换成PROMPT... $(git_prompt_info) $(git_prompt_status) ...于是提示符里会多出一段类似✚ ✹ ✖ ?的标记分别对应有新文件暂存、有文件修改、有文件删除、有未跟踪文件。这样一来你在提示符后面敲命令之前就已经清楚了当前工作区的整体状态不用专门跑去敲git status。这套方案唯一的小缺点是提示符会变长所以我后来把 git 状态单独放到了右侧提示符RPROMPT上这样既不干扰左边敲命令的主区域又能随时瞥一眼状态信息。这个做法的设置方式是RPROMPT$(git_prompt_info) $(git_prompt_status) %{$fg[cyan]%}[%D{%H:%M:%S}]%{$reset_color%}右侧提示符里的内容会在终端行的最右侧靠右对齐显示命令本身在左侧输入两者互不干扰。我把时间和 git 状态都放在右侧之后左边的主提示符就只剩用户、目录、$三样输入命令的空间大了很多整个终端看起来也清爽很多。这里有个小坑要提醒你RPROMPT里千万别放太长又经常变化的内容否则当命令长度超过终端宽度时右侧提示符会和命令产生视觉重叠看起来非常难受。时间戳精确到秒就会一直跳放在右侧合适放左侧的话每秒钟跳一次很容易让人分心。4. 常见问题与排查技巧实录4.1 修改不生效、颜色错乱、符号显示成一堆问号我自己改主题这几年遇到的情况基本逃不出下面这张表。整理出来遇到直接对号入座就行。现象原因解决办法修改主题文件后提示符没变化没重新加载配置source ~/.zshrc或重开终端窗口ZSH_THEME改成了自定义名但仍显示旧主题自定义文件放错目录或文件名后缀不对确认文件在~/.oh-my-zsh/custom/themes/下且以.zsh-theme结尾提示符里出现%、%n等字面字符转义符写错或PROMPT没生效检查是否写了setopt prompt_subst它是$(...)命令替换生效的前提颜色一直延伸串到下一个区域缺少%{$reset_color%}收尾每一段颜色结束时都要显式重置特殊符号如➜、✘、✓显示成问号或方块当前字体不支持这些字形换用 Nerd Font 或 JetBrains Mono 等包含符号的字体多行命令时提示符重叠、光标错乱颜色转义没包%{...%}zsh 统计了不可见字符所有颜色控制都必须写成%{$fg[...]%}形式升级 oh-my-zsh 后自定义丢失直接改了框架目录下的原主题文件以后一律用custom/themes目录自定义4.2 一个最容易忽视的坑prompt_subst 选项$(git_prompt_info)这种写法看起来平平无奇但它在 zsh 里要正常工作必须启用prompt_subst这个选项。它的作用是让 zsh 在渲染PROMPT变量时执行里面的命令替换。oh-my-zsh 默认已经帮你开启了所以你直接用默认主题没问题。但是如果你从网上抄了一段主题代码放在自己的主题里恰好那段代码在这个选项没开的 shell 环境里运行你看到的就不是分支名而是一行字面量的$(git_prompt_info)。排查方法很简单在终端里敲一下setopt | grep prompt_subst如果有输出说明选项是开的没输出就把它加进~/.zshrcsetopt prompt_subst这个选项最好是全局设置而不是只在主题文件里设置因为主题文件加载顺序比.zshrc晚有些依赖 prompt 的环境检测逻辑在主题加载之前就已经跑过了。我遇到过不止一次有人把setopt prompt_subst写进主题文件结果补全插件和自定义函数里使用 prompt 的代码反而失效了。所以记住这种 shell 级别的选项放.zshrc主题文件里只做外观定义。4.3 符号字体问题的完整处理方案➜这个箭头符号是很多主题的默认提示符开头robbyrussell 里其实没用它用的是$权限符。但如果你在网上看到好玩的方案想要那些箭头、星星、勾叉符号就得注意字体的支持问题了。系统自带的等宽字体比如 Menlo、Consolas、DejaVu Sans Mono对 Unicode 符号的支持参差不齐。我踩过最狠的一次坑是给git_prompt_status配了✹符号在 macOS 的 Terminal.app 里正常切到 iTerm2 里就变成一个空心方块再切到 VS Code 内置终端又正常了。折腾了半天最后归根到底就是一个东西字体有没有覆盖这个码位。我的建议是直接在终端里装一款 Nerd Font。这类字体是把大量图标、符号、箭头统一塞进字体文件的比如MesloLGS NF、FiraCode Nerd Font装完后在终端的设置里切换过去绝大多数符号都能正常显示。macOS 用户推荐 iTerm2 的 14 天脚本安装方式Windows 用户直接在项目里下载.ttf文件安装Linux 用户用发行版的包管理器装fonts-firacode-nerd之类的包就行。装完记得不仅要切换终端的字体还要切换 IDE 集成终端的字体以及 tmux 内部的字体这一步很容易漏掉。4.4 排查思路从头验证每一步如果你改出来的提示符完全乱了不要瞎猜。我的排查顺序是固定的从底到顶一层一层看第一步先确认语法没写错。把主题文件里所有%{和%}成对地数一遍括号必须闭合。第二步在终端里手动执行整条PROMPT赋值语句就能看到即时渲染结果不用反复重启终端。比如PROMPT%{$fg_bold[green]%}%n%m%{$reset_color%} %{$fg_bold[blue]%}%~%{$reset_color%} $(git_prompt_info) %{$fg_bold[yellow]%}$%{$reset_color%} 如果条语句在交互终端里执行后立刻生效就说明语法没问题。如果执行后还是老的提示符说明你的环境有其他机制在覆盖PROMPT比如 powerlevel10k 主题自带的初始化脚本。第三步检查有没有优先级冲突。如果你同时开了 powerlevel9k、starship 这类工具或者配置了precmd钩子函数重新设置了PROMPT主题文件里的赋值会在每次执行命令时被覆盖掉。可以用which precmd或type precmd看看有没有可疑的钩子函数在起作用。5. 进阶玩法让主题真正“为我所用”5.1 分支显示在右侧的取舍把 git 信息挪到右侧之后我遇到了一个比较微妙的问题右侧提示符在命令运行期间是会随时更新的吗答案是看配置。zsh 的右侧提示符RPROMPT默认在每次命令执行完都会被重新渲染所以分支状态和时间的更新是实时的不需要手动干预。但我实测发现如果命令行太长占据了整个终端宽度右侧的 git 状态就会被顶到下一行视觉上变得支离破碎。这在宽屏终端里问题不大在窄窗口里就很烦。后来我用一个办法解决了给RPROMPT套一个截断逻辑让它在终端宽度足够时才显示完整状态。这个逻辑用 zsh 的条件展开可以写成RPROMPT${PR_BG[cyan]}${VIRTUAL_ENV_PROMPT}${PR_RESET} $(git_prompt_info) $(git_prompt_status)不过说实话这个方案需要引入额外的 PR 变量体系对只想简单改造 robbyrussell 的人来说有点重了。我的实际做法是干脆把 git 分支状态留在左侧提示符把时间戳放到右侧。分支是高频信息放左边好看也好点时间相对低频放右边偶尔扫一眼足够了。我的最终方案是PROMPT%{$fg[green]%}[%D{%H:%M}]%{$reset_color%} %{$fg_bold[green]%}%n%m%{$reset_color%}:%{$fg_bold[blue]%}%~%{$reset_color%} $(git_prompt_info) %{$fg_bold[yellow]%}$%{$reset_color%} RPROMPT这套配置左半边集中了所有高频信息右半边干干净净命令输出的空间彻底释放属于我试了十几套方案之后综合体验最好的。5.2 与tmux状态栏联动的玩法改完终端提示符之后我又顺手做了一件让工作体验提升不少的事把 git 分支状态同步到 tmux 的状态栏。tmux 是我日常必用的终端复用工具开着多个窗口每个窗口里跑着不同的项目。默认情况下tmux 的状态栏只显示会话和窗口编号根本看不出哪个窗口对应哪个项目。要手动记住过五分钟就忘了。实现这个联动的思路很简单在每次命令执行完precmd钩子去更新 tmux 状态栏的某个占位变量。在~/.zshrc里加一段函数precmd() { local branch if [[ -d .git ]] || command git rev-parse --git-dir /dev/null 21; then branch$(command git symbolic-ref --short HEAD 2/dev/null || echo detached) tmux set-option -q git_branch $branch fi }然后在 tmux 配置文件~/.tmux.conf里设置状态栏格式调用这个变量set -g status-left #S #[fgblue]#(tmux show-option -qv git_branch)设好之后tmux 状态栏的每个窗口会显示当前所在的 git 分支名切换目录和分支时自动更新。它和 robbyrussell 主题里的分支显示形成了一个互补终端提示符里告诉你当前分支内部是否存在改动tmux 状态栏告诉你整个窗口正在跑哪个分支。这两套信息配合好了多任务操作的迷糊感能少很多。这个联动方案我已经跑了一年多稳定性很好唯一要注意的是 tmux 的变量更新有延迟不会立刻刷新需要习惯一下。5.3 定制主题的四个设计原则改主题改久了我总结出四条自己的设计原则写给刚开始动手的人参考。第一条信息分层。不是所有信息都值得放在同一个水平位置。高频信息用户、目录、分支放最靠前低频信息时间、虚拟环境放中间或靠后。如果信息量特别大就拆一部分到右侧。我见过有人把所有状态全堆在一行结果提示符比 cmd 还长找重点的难度反而增加了。第二条颜色克制。一个提示符最多用三到四种颜色每种颜色对应一类意义。我自己的习惯是绿色表示身份用户、主机蓝色表示位置路径洋红色表示环境虚拟环境黄色表示可操作状态命令符。这样看久了能形成条件反射看到颜色就知道是哪类信息。第三条每段颜色必收尾。这是规避提示符错乱最有效的办法。每次颜色开始都写%{...%}颜色结束立刻写%{$reset_color%}这是原则问题不要省。宁可代码看起来啰嗦一点也不要让终端渲染出错。第四条经常迭代。提示符这东西你用两周后才会发现自己真正需要什么。第一次改完不要觉得大功告成先跑一段时间把觉得多余的东西删掉把缺的信息补上慢慢就会趋于稳定。我自己的 robbyrussell 定制版本已经迭代了四五轮每一轮都是根据实际感受微调出来的而不是一次设计定稿。改主题这个事说大不大说小不小但它真真实实地影响着我每天的工作流。一个顺手、好用、有个人印记的终端提示符能让你在敲命令时心情都不一样。如果你在用 oh-my-zsh不妨从复制一个 robbyrussell 主题文件开始按自己的习惯改上一轮体验一下这个定制的过程。我打包票改完第一版你大概率会回来继续调第二版的。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询