Hugo Server命令解释

基本用法 | Hugo官方文档 (opendocs.io)


1. 服务器基本行为

Flag默认值说明
-p, --port1313本地服务器端口。端口被占就换一个。
-b, --baseURL浏览器最终访问的根地址,如 https://spf13.com/。本地开发通常不用改(Hugo 会自动用 http://localhost:1313)。
--appendPorttrue是否在 baseURL 后面自动加端口。设为 false 可生成干净的 URL(配合反向代理时常用)。
--bind127.0.0.1监听哪个网卡。想让别人电脑访问就改成 0.0.0.0
-O, --openBrowser服务器启动后自动打开浏览器。

2. 目录/路径相关

Flag说明
-s, --source项目根目录,不写就是当前目录。
-c, --contentDir放 Markdown 的 content 目录,默认 content
-l, --layoutDir放模板的 layouts 目录,默认 layouts
-d, --destination生成后网站写到磁盘哪个目录,默认 public
--cacheDir缓存目录,默认系统临时目录。CI 里可以显式指定,方便缓存加速。
--themesDir主题目录,默认 themes
-t, --theme指定一个或多个主题(可以层叠)。

3. 构建内容控制

Flag说明
-D, --buildDrafts把草稿也编译出来。
-F, --buildFuture把未来发布的文章也编译出来。
-E, --buildExpired把已过期文章也编译出来。
--disableKinds禁止生成某些页面类型,如 home,sitemap,RSS,404
--renderSegments只渲染在 segments 配置里声明的某几类页面,大型站点加快编译用。

4. 实时开发体验

Flag默认值说明
-w, --watchtrue监听文件变化自动重新编译。
--disableLiveReload禁用浏览器自动刷新(配合外部 livereload 工具时使用)。
--liveReloadPort-1浏览器刷新脚本用哪个端口,HTTPS 代理环境可改成 443。
-N, --navigateToChanged文件改动后浏览器自动跳到对应页面。
--poll用轮询而不是系统事件监听文件改动,Docker/WSL 下网络共享目录常用,如 --poll 700ms

5. 性能/调试/错误处理

Flag说明
--disableFastRender每次全量重新渲染,看到底是哪处模板出错。
--templateMetrics输出每个模板花了多长时间。
--templateMetricsHints在上一条基础上给出优化建议(避免重复调用等)。
--printMemoryUsage定时打印内存占用。
--panicOnWarning遇到 WARNING 就 panic,CI 里快速失败。
--printI18nWarnings打印缺失的翻译键。
--printPathWarnings打印路径冲突、重复等警告。
--printUnusedTemplates打印没被用到的模板文件,方便清理。
--pprof在 8080 端口启动 Go pprof,排查性能瓶颈。
--trace file把 trace 写入文件,供 go tool trace 分析(一般用户用不到)。

6. 缓存/锁/清理

Flag说明
--ignoreCache完全忽略缓存目录,干净编译。
--gc编译完后做一次垃圾回收,清掉没用到的缓存。
--cleanDestinationDir同步静态文件前先把目标目录里多余的文件删掉,防止残留旧文件。
--forceSyncStatic任何静态文件改动都整目录复制,不增量。
--noBuildLock不生成 .hugo_build.lock,容器环境偶尔需要。

7. 静态文件 & 权限

Flag说明
--renderStaticToDisk静态文件直接从磁盘读,动态内容走内存,内存占用更稳。
--noChmod不把文件权限同步到目标目录,Windows/WSL 可避免出现 0755/0644 问题。
--noTimes不同步修改时间,CI 里可避免时间戳不一致导致缓存失效。
--forceSyncStatic见上。

8. HTTPS/证书

Flag说明
--tlsAuto自动生成 mkcert 本地受信证书,一键 HTTPS。
--tlsCertFile / --tlsKeyFile自己指定证书和私钥路径。

9. Git 信息

Flag说明
--enableGitInfo把 git 最近提交的作者、时间、哈希写进页面变量 .GitInfo,方便做“最后更新”。

10. 全局通用

Flag说明
--clock设定“虚拟时间”,测试未来/过期文章时很有用,如 --clock 2025-12-31T23:59:00Z
--config / --configDir指定配置文件或配置目录。
-e, --environment指定运行环境(developmentproduction 等),对应 config/_default/config/production/ 分层配置。
--logLevel日志级别:debug、info、warn、error。
--quiet几乎不输出日志,CI 用。
-M, --renderToMemory只在内存里渲染,不写磁盘,跑测试用。
--ignoreVendorPaths忽略 _vendor 里某些模块路径,解决版本冲突。

一条常用组合示例

本地开发时最常见的命令:

1
hugo server -D -F --bind 0.0.0.0 -p 1313 --navigateToChanged

含义:监听所有网卡,端口 1313,包含草稿和未来文章,文件改动后自动跳转。


记住:

  • -D/-F/-E 的通常只在本地开发用,生产构建别用。
  • 端口被占、路径不对、权限问题,90% 的报错都能通过上面的参数解决。
updatedupdated2025-08-272025-08-27
加载评论