<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>踩坑紀錄 on Justmaker's KB</title><link>https://justmaker.github.io/tags/%E8%B8%A9%E5%9D%91%E7%B4%80%E9%8C%84/</link><description>Recent content in 踩坑紀錄 on Justmaker's KB</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><lastBuildDate>Sun, 06 Apr 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://justmaker.github.io/tags/%E8%B8%A9%E5%9D%91%E7%B4%80%E9%8C%84/index.xml" rel="self" type="application/rss+xml"/><item><title>Hugo + GitHub Pages 建站踩坑紀錄</title><link>https://justmaker.github.io/post/devops/hugo-github-pages-pitfalls/</link><pubDate>Sun, 06 Apr 2025 00:00:00 +0000</pubDate><guid>https://justmaker.github.io/post/devops/hugo-github-pages-pitfalls/</guid><description>&lt;h2 id="前言">前言
&lt;/h2>&lt;p>建這個站的過程其實沒有想像中順利。這篇記錄我遇到的坑，希望能幫其他人省點時間。&lt;/p>
&lt;h2 id="坑-1hugo-版本不對">坑 1：Hugo 版本不對
&lt;/h2>&lt;h3 id="問題">問題
&lt;/h3>&lt;p>用 &lt;code>apt install hugo&lt;/code> 裝的版本太舊（0.68），很多新 theme 需要 0.110+。&lt;/p>
&lt;h3 id="解法">解法
&lt;/h3>&lt;p>直接從 GitHub Release 下載 extended 版：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">wget https://github.com/gohugoio/hugo/releases/download/v0.147.0/hugo_extended_0.147.0_linux-amd64.deb
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo dpkg -i hugo_extended_0.147.0_linux-amd64.deb
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;strong>一定要用 extended 版&lt;/strong>，不然 SCSS 編譯會失敗。&lt;/p>
&lt;h2 id="坑-2github-actions-的-submodule">坑 2：GitHub Actions 的 submodule
&lt;/h2>&lt;h3 id="問題-1">問題
&lt;/h3>&lt;p>Theme 是用 &lt;code>git submodule add&lt;/code> 加的，但 GitHub Actions checkout 時預設不會 clone submodule，導致 build 時找不到 theme。&lt;/p>
&lt;h3 id="解法-1">解法
&lt;/h3>&lt;p>&lt;code>actions/checkout&lt;/code> 加上 &lt;code>submodules: recursive&lt;/code>：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">- &lt;span class="nt">uses&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">actions/checkout@v4&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">with&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">submodules&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">recursive&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">fetch-depth&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="坑-3github-pages-source-設定">坑 3：GitHub Pages Source 設定
&lt;/h2>&lt;h3 id="問題-2">問題
&lt;/h3>&lt;p>Push 上去後 GitHub Pages 顯示 404。&lt;/p>
&lt;h3 id="解法-2">解法
&lt;/h3>&lt;p>到 repo &lt;strong>Settings → Pages → Build and deployment → Source&lt;/strong>，選 &lt;strong>GitHub Actions&lt;/strong>（不是 Deploy from a branch）。&lt;/p>
&lt;p>很多教學文寫的是舊版用法（gh-pages branch），現在推薦用 GitHub Actions。&lt;/p>
&lt;h2 id="坑-4baseurl-結尾斜線">坑 4：baseURL 結尾斜線
&lt;/h2>&lt;h3 id="問題-3">問題
&lt;/h3>&lt;p>&lt;code>baseURL&lt;/code> 沒加結尾 &lt;code>/&lt;/code>，導致部分資源路徑錯誤。&lt;/p>
&lt;h3 id="解法-3">解法
&lt;/h3>&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="c"># ✅ 正確&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">baseURL&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">https://justmaker.github.io/&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="c"># ❌ 錯誤&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">baseURL&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">https://justmaker.github.io&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="坑-5中文檔名和-url">坑 5：中文檔名和 URL
&lt;/h2>&lt;h3 id="問題-4">問題
&lt;/h3>&lt;p>中文標題預設會變成中文 URL（&lt;code>/post/我的文章/&lt;/code>），在某些環境下會出問題。&lt;/p>
&lt;h3 id="解法-4">解法
&lt;/h3>&lt;p>每篇文章都明確指定 &lt;code>slug&lt;/code>：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nn">---&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">title&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s2">&amp;#34;我的中文標題&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">slug&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">my-english-slug&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nn">---&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="坑-6搜尋功能不-work">坑 6：搜尋功能不 work
&lt;/h2>&lt;h3 id="問題-5">問題
&lt;/h3>&lt;p>Stack theme 的搜尋功能一直轉圈。&lt;/p>
&lt;h3 id="解法-5">解法
&lt;/h3>&lt;p>需要在 &lt;code>hugo.yaml&lt;/code> 的 &lt;code>outputs&lt;/code> 加上 &lt;code>JSON&lt;/code>：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">outputs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">home&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">HTML&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">RSS&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="l">JSON &lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="c"># ← 搜尋功能需要這個&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Stack theme 的搜尋是 client-side，靠 &lt;code>index.json&lt;/code> 做全文搜尋。&lt;/p>
&lt;h2 id="總結">總結
&lt;/h2>&lt;p>大部分坑都是設定問題，知道就很簡單，不知道要 debug 很久。希望這篇能幫到你。&lt;/p>
&lt;p>如果你也遇到其他坑，歡迎在下方留言分享 👇&lt;/p></description></item></channel></rss>