GitHub Pages Deploy
หน้านี้สรุปวิธี deploy หนังสือขึ้น GitHub Pages ด้วย GitHub Actions
สิ่งที่เตรียมไว้แล้ว
Section titled “สิ่งที่เตรียมไว้แล้ว”โปรเจกต์นี้เตรียมไฟล์สำหรับ deploy แล้ว:
.github/workflows/deploy.ymlastro.config.mjspublic/.nojekyllastro.config.mjs อ่านค่า environment variables:
SITEBASE_PATHworkflow จะตั้งค่าสองตัวนี้ให้อัตโนมัติตามชื่อเจ้าของ repo และชื่อ repo
รูปแบบ URL ของ GitHub Pages
Section titled “รูปแบบ URL ของ GitHub Pages”ถ้า repo ชื่อ spring-boot-tutorial-book URL จะเป็น:
https://<username>.github.io/spring-boot-tutorial-book/ถ้า repo เป็น user site เช่น <username>.github.io URL จะเป็น:
https://<username>.github.io/ขั้นตอน deploy
Section titled “ขั้นตอน deploy”- สร้าง GitHub repository ใหม่
- ใช้โฟลเดอร์
spring-boot-tutorial-bookเป็น root ของ repo - push ขึ้น branch
main - เปิดหน้า repository บน GitHub
- ไปที่
Settings→Pages - เลือก
Source: GitHub Actions - ไปที่แท็บ
Actions - เปิด workflow
Deploy to GitHub Pages - กด
Run workflowหรือ push commit ใหม่เข้า branchmain
หลัง workflow สำเร็จ GitHub จะแสดง URL ของเว็บในหน้า deploy
ตรวจ build ก่อน push
Section titled “ตรวจ build ก่อน push”ก่อน push ควรรัน:
npm installnpm run buildถ้าต้องการจำลอง base path ของ GitHub Pages ในเครื่อง:
$env:SITE="https://example.github.io"$env:BASE_PATH="/spring-boot-tutorial-book"npm run buildหลังทดสอบเสร็จ ถ้าต้องการกลับเป็นค่า local:
Remove-Item Env:SITERemove-Item Env:BASE_PATHกรณีใช้ custom domain
Section titled “กรณีใช้ custom domain”ถ้าใช้ custom domain เช่น book.example.com ให้ทำเพิ่ม:
- ตั้งค่า custom domain ใน GitHub Pages settings
- เพิ่มไฟล์
public/CNAME - ใส่ domain จริงในไฟล์นั้น เช่น:
book.example.comจากนั้นปรับ SITE ใน workflow ให้เป็น:
https://book.example.comและไม่ต้องตั้ง BASE_PATH
ปัญหาที่พบบ่อย
Section titled “ปัญหาที่พบบ่อย”- หน้าเว็บขึ้น แต่ CSS/JS หาย: มักเกิดจาก
baseไม่ตรงกับชื่อ repo - เปิด URL แล้ว 404: ตรวจว่า Pages settings เลือก
GitHub Actions - workflow ไม่ทำงาน: ตรวจว่าไฟล์
.github/workflows/deploy.ymlอยู่ที่ root ของ repo - repository ไม่ใช่ branch
main: แก้ workflow ให้ trigger branch ที่ใช้จริง