Netlify Deploy 完整教學:靜態網站一鍵部署指南【2026】

「我用 React 做了一個網站,想讓朋友看看,但不知道怎麼放上網...」

如果你有這個困擾,Netlify 絕對是最簡單的解決方案。只要把 GitHub 連上去,每次 push 程式碼就自動部署,完全不用管伺服器的事。

這篇文章會帶你從零開始,學會用 Netlify 部署靜態網站。從連接 GitHub、設定 Build 指令、到綁定自訂網域,一步步帶你完成。


Netlify 是什麼?

在開始部署前,先認識一下 Netlify 這個平台。

Netlify 平台介紹

Netlify 是專門為靜態網站和 JAMstack 應用設計的部署平台,2014 年創立,現在是最受歡迎的前端部署平台之一。

Netlify 的核心理念:

連接 Git,自動部署,全球 CDN 分發。

當你把 GitHub repository 連接到 Netlify:
1. 每次 push 程式碼,自動觸發 Build
2. Build 完成後,自動部署到全球 CDN
3. 提供一個 xxx.netlify.app 網址

這整個過程完全自動化,你只需要專注寫程式碼就好。

Netlify 部署流程圖:從 GitHub Push 到網站上線

Netlify 免費方案提供:
- 每月 300 credits(Netlify 已改為 credits 制,不再是固定頻寬/建置分鐘:頻寬每 GB 扣 20 credits,換算約 15 GB,比原本的 100 GB 大幅縮水;建置分鐘已不再單獨計費)
- 無限靜態網站數量
- 自動 HTTPS
- 自訂網域

對於個人專案和小型網站,免費方案通常還是夠用,但用量算法已經改變,實際額度請以 Netlify 官方定價頁為準。

Netlify vs Vercel vs GitHub Pages

這三個是最常被比較的靜態網站部署平台:

Netlify vs Vercel vs GitHub Pages 比較表

比較項目 Netlify Vercel GitHub Pages
免費額度 300 credits/月(credits 制,頻寬約合 15 GB,非固定 GB 數) 100 GB/月 100 GB/月
Build 分鐘 已不再單獨計費(併入 credits) 無月度分鐘額度(單次建置上限 45 分鐘) 無限(GitHub Actions)
Serverless Functions ✅ 併入 credits,無固定次數 ✅ 100K/月 ❌
表單處理 ✅ 內建 ❌ ❌
分支預覽 ✅ ✅ ❌(需設定)
最適合 靜態網站、JAMstack Next.js、React 簡單靜態網站

選擇建議

  • Netlify:靜態網站、需要表單功能、JAMstack 專案
  • Vercel:Next.js 專案、需要 Edge Functions
  • GitHub Pages:簡單的文件網站、個人部落格

Netlify 適合什麼專案

非常適合
- React / Vue / Angular 單頁應用(SPA)
- 靜態網站生成器(Gatsby、Hugo、Jekyll)
- 作品集、個人網站
- 文件網站
- Landing Page

可能不適合
- 需要後端 API 的全端應用(可搭配 Netlify Functions)
- 需要資料庫的應用(Netlify 本身不提供)
- 需要長時間運行的背景任務

想了解更多部署選項,可以參考 程式部署完整指南。


Netlify 部署方式

Netlify 提供三種部署方式,各有適用情境。

方式一:連接 Git 儲存庫(推薦)

這是最推薦的方式,實現「push 即部署」的自動化流程:

優點
- 自動化:push 就部署
- 版本控制:每個 commit 都有對應的部署
- 分支預覽:每個 PR 都有獨立的預覽 URL
- 回滾容易:可以一鍵回到前一個版本

適合
- 團隊協作專案
- 需要持續更新的網站
- 想要 CI/CD 流程的專案

方式二:拖曳上傳

直接把 build 好的資料夾拖到 Netlify 網站:

優點
- 超級簡單,不需要 Git
- 適合快速測試

缺點
- 沒有版本控制
- 每次更新都要手動上傳
- 不適合正式專案

適合
- 快速展示靜態 HTML
- 一次性的 Landing Page
- 測試 Build 結果

方式三:Netlify CLI

使用命令列工具部署:

# 安裝 Netlify CLI
npm install -g netlify-cli

# 登入
netlify login

# 部署(手動)
netlify deploy

# 部署到正式環境
netlify deploy --prod

優點
- 可以整合到自己的 CI/CD 流程
- 適合進階使用者

適合
- 已有其他 CI/CD 工具
- 需要客製化部署流程

💡 Netlify 設定卡關? 雖然 Netlify 已經很簡單了,但 Build 設定和環境變數有時還是會讓人困惑。如果你遇到問題,讓 VibeFix 幫你處理,我們可以快速幫你搞定部署設定。


Netlify 部署實戰

接下來一步步帶你完成 Netlify 部署。我們以連接 GitHub 的方式為例。

Step 1:註冊 Netlify 帳號

  1. 前往 Netlify 官網
  2. 點選「Sign up」
  3. 選擇「Sign up with GitHub」(推薦,之後連接更方便)
  4. 授權 Netlify 存取你的 GitHub 帳號

Step 2:連接 GitHub 專案

Netlify Dashboard 部署設定畫面:連接 GitHub 的步驟

  1. 登入後,點選「Add new site」→「Import an existing project」
  2. 選擇「Deploy with GitHub」
  3. 選擇你要部署的 repository
  4. 如果看不到 repository,點選「Configure the Netlify app on GitHub」調整權限

Step 3:設定 Build 指令

Netlify 需要知道如何建置你的專案:

Netlify Build 設定畫面:Build command 和 Publish directory

設定項目 說明 範例
Base directory 專案根目錄(通常留空) (空白)
Build command 建置指令 npm run build
Publish directory 建置輸出目錄 dist 或 build

常見框架的設定

框架 Build command Publish directory
React (CRA) npm run build build
React (Vite) npm run build dist
Vue (Vite) npm run build dist
Next.js (靜態) npm run build && npm run export out
Gatsby gatsby build public
Hugo hugo public

Step 4:部署與預覽

設定完成後,點選「Deploy site」,Netlify 就會開始建置:

  1. Building:執行你的 build command
  2. Processing:處理和優化靜態檔案
  3. Published:部署到 CDN

第一次部署通常需要 1-3 分鐘。完成後會得到一個網址,例如:
https://amazing-site-abc123.netlify.app

查看部署日誌

如果 Build 失敗,可以在「Deploys」頁面查看詳細日誌:

10:30:00 AM: Build ready to start
10:30:05 AM: Installing dependencies
10:30:30 AM: npm run build
10:31:00 AM: Build successful
10:31:05 AM: Deploying to CDN
10:31:10 AM: Published

Step 5:自訂網域設定

預設的 .netlify.app 網址不太好記,你可以設定自己的網域:

新增自訂網域

  1. 進入 Site settings → Domain management
  2. 點選「Add custom domain」
  3. 輸入你的網域,例如 www.yourdomain.com

DNS 設定

Netlify 提供兩種方式:

方式一:使用 Netlify DNS(推薦)
- 將網域的 Nameservers 指向 Netlify
- Netlify 會自動處理所有 DNS 設定

方式二:外部 DNS
- 在你的 DNS 服務商新增記錄:
- A Record:指向 75.2.60.5
- 或 CNAME:指向 your-site.netlify.app

自動 SSL

設定好網域後,Netlify 會自動申請 Let's Encrypt 憑證,通常幾分鐘內就會生效。完全不用手動處理!


Netlify 進階功能

Netlify 不只是靜態網站託管,還有很多強大的功能。

表單處理

Netlify 內建表單處理功能,不需要後端就能收集表單資料:

<form name="contact" method="POST" data-netlify="true">
  <input type="text" name="name" placeholder="姓名" required>
  <input type="email" name="email" placeholder="Email" required>
  <textarea name="message" placeholder="訊息"></textarea>
  <button type="submit">送出</button>
</form>

只要加上 data-netlify="true",Netlify 就會自動處理:
- 表單提交會儲存在 Netlify 後台
- 可以設定 Email 通知
- 可以串接 Zapier、Slack 等服務
- 免費方案每月 100 次提交

Serverless Functions

需要一些後端邏輯?Netlify Functions 讓你用 JavaScript 寫 Serverless 函式:

建立 Function

// netlify/functions/hello.js
exports.handler = async (event, context) => {
  const name = event.queryStringParameters.name || 'World';

  return {
    statusCode: 200,
    body: JSON.stringify({
      message: `Hello, ${name}!`
    })
  };
};

呼叫方式

https://your-site.netlify.app/.netlify/functions/hello?name=VibeFix

免費額度
- 2026 年新制下,Functions 呼叫已經併入 credits 制,官方沒有再列出像「125,000 次/月」這種固定次數上限,精確換算比例請以官方定價頁為準

適合用於:
- 表單處理(搭配第三方服務)
- API 代理(隱藏 API Key)
- 簡單的資料處理

分支部署與 Preview

Netlify 的 Deploy Previews 功能超實用:

分支部署
- 每個 Git 分支可以有獨立的部署
- 例如 dev 分支部署到 dev--your-site.netlify.app

PR Preview
- 每個 Pull Request 自動產生預覽網址
- 團隊成員可以直接看到改動結果
- PR 關閉後預覽會自動清除

設定方式

  1. 進入 Site settings → Build & deploy
  2. 找到「Deploy contexts」
  3. 設定要部署的分支

想比較其他平台,可以參考 Vercel 部署教學。


Netlify 常見問題

部署 Netlify 時最常遇到的問題和解決方法。

Build Failed

錯誤訊息

Build failed due to a user error: Build script returned non-zero exit code: 1

常見原因與解決方法

  1. 依賴安裝失敗
    bash # 確認 package-lock.json 已 commit git add package-lock.json git commit -m "Add package-lock.json"

  2. Node 版本不對

在 netlify.toml 設定 Node 版本:
toml [build.environment] NODE_VERSION = "18"

  1. Build 指令錯誤

確認 package.json 有正確的 build script:
json { "scripts": { "build": "vite build" } }

  1. 環境變數未設定

如果程式碼需要環境變數,在 Netlify 後台設定:
Site settings → Environment variables

404 Page Not Found

問題描述

SPA(單頁應用)直接訪問子路由時出現 404,例如:
- https://your-site.com/ ✅ 正常
- https://your-site.com/about ❌ 404

原因

Netlify 預設會尋找 /about/index.html 檔案,但 SPA 只有一個 index.html。

解決方法

在 public 目錄(或 build 輸出目錄)建立 _redirects 檔案:

/*    /index.html   200

這告訴 Netlify:「所有路徑都回傳 index.html,狀態碼 200」

Netlify _redirects 檔案設定:解決 SPA 路由 404 問題

或者使用 netlify.toml:

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200

環境變數未生效

問題描述

在 Netlify 後台設定了環境變數,但程式碼讀不到。

常見原因

  1. 前端框架的限制

React (CRA) 只讀取 REACT_APP_ 開頭的變數:
```javascript
// ❌ 讀不到
process.env.API_KEY

// ✅ 可以讀到
process.env.REACT_APP_API_KEY
```

Vite 使用 VITE_ 開頭:
javascript import.meta.env.VITE_API_KEY

  1. 需要重新部署

修改環境變數後,需要觸發新的部署才會生效。

  1. Build 時才有效

前端的環境變數是在 Build 時注入的,不是執行時。修改後必須重新 Build。

想了解 GitHub Pages 的使用方式,可以參考 GitHub Deploy Key 教學。


FAQ 常見問題

Netlify 免費方案夠用嗎?

對於大多數個人專案和小型網站,免費方案通常還是夠用,但要注意 Netlify 已經改成 credits 制,不再是單純的「頻寬 GB 數+Build 分鐘數」:
- 每月 300 credits,頻寬每 GB 扣 20 credits,全部拿來當頻寬約等於 15 GB(比原本固定的 100 GB 明顯縮水)
- Build 分鐘已經不再單獨計費,改併入 credits 計算
- 無限網站數量
實際夠不夠用要看你的網站流量與建置頻率,建議上 Netlify 官方定價頁用自己的用量試算。

Netlify 和 Vercel 怎麼選?

  • Next.js 專案 → Vercel(官方支援更好)
  • 其他 React/Vue 專案 → 兩者都可以
  • 需要表單功能 → Netlify
  • JAMstack 專案 → Netlify(生態系更完整)

如何設定多個網域指向同一個網站?

  1. 在 Domain management 新增所有網域
  2. 設定主網域(Primary domain)
  3. 其他網域會自動 301 導向主網域

Netlify Functions 和 AWS Lambda 有什麼關係?

Netlify Functions 底層就是 AWS Lambda!Netlify 幫你處理了設定和部署,讓你專注在寫程式碼就好。

如何回滾到前一個版本?

  1. 進入「Deploys」頁面
  2. 找到想要回滾的部署
  3. 點選「Publish deploy」

整個過程只要幾秒鐘,非常方便。


Netlify 部署重點整理與下一步行動

Netlify 是目前最友善的靜態網站部署平台,主要優勢:

  • 簡單:連接 GitHub 就自動部署
  • 免費:個人專案完全夠用
  • 功能完整:Forms、Functions、分支預覽都內建

部署流程整理:

步驟 動作
1 用 GitHub 註冊 Netlify
2 連接你的 repository
3 設定 Build command 和 Publish directory
4 點選 Deploy
5 (選擇性)設定自訂網域

重點整理:

  1. 選對部署方式:連接 Git 是最佳選擇
  2. 設定正確:Build command 和目錄要對
  3. SPA 記得加 _redirects:解決 404 問題
  4. 善用免費功能:Forms 和 Functions 很實用

🔧 Netlify 設定有問題? 雖然 Netlify 已經很簡單了,但有時候 Build 錯誤或 404 問題還是讓人頭痛。如果你在部署過程中遇到困難,讓 VibeFix 幫你解決,我們可以快速診斷問題並幫你搞定部署。

分享文章:
V

VibeFix

專門解決 AI Vibe Coding 後的疑難雜症,讓你的專案順利上線。

這篇文章有幫到你嗎?

如果還有問題,讓我們直接幫你解決!

聯繫我們