Deploy คือการนำแอปที่ build แล้วไปให้ผู้ใช้เข้าถึงได้จริง โดย Angular SPA สามารถ deploy ได้หลายทาง เช่น Firebase Hosting, Netlify หรือ VPS ที่ใช้ Nginx
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%%
flowchart LR
subgraph Era1["ยุค FTP Upload / Manual Deploy"]
A["copy dist เอง
พลาดง่าย"]
end
subgraph Era2["ยุค Static Hosting"]
B["Firebase Hosting
CDN อัตโนมัติ"]
C["Netlify
Git-based deploy"]
end
subgraph Era3["ยุค VPS/Infra Control"]
D["Nginx SPA Config
try_files"]
E["Certbot SSL
HTTPS"]
end
A --> B --> C --> D --> E
ng deploy ร่วมกับ @angular/fire และมี CDN อัตโนมัติ_redirects ใน Netlify ป้องกัน 404 เมื่อใช้ SPA Routingtry_files $uri /index.html ส่ง request ทุก path ไปที่ Angular| Platform | ข้อดี | เหมาะกับ |
|---|---|---|
| Firebase Hosting | CDN, deploy ง่าย | Angular static app |
| Netlify | Git auto deploy, preview | โปรเจกต์ static/SPA |
| VPS + Nginx | ควบคุม server สูง | งานที่ต้อง custom infra |
| Docker VPS | deploy เหมือนกันทุกเครื่อง | full-stack หลาย service |
%%{init: {"theme": "base", "themeVariables": {"primaryColor": "#fabd2f", "primaryTextColor": "#282828", "primaryBorderColor": "#b57614", "lineColor": "#7c6f64", "secondaryColor": "#83a598", "tertiaryColor": "#b8bb26", "background": "#fbf1c7", "mainBkg": "#ebdbb2", "fontFamily": "Tahoma, sans-serif"}}}%%
flowchart TD
A["Angular Source
โค้ด"] --> B["ng build
สร้าง dist"]
B --> C{"Hosting Target
เลือกปลายทาง"}
C --> D["Firebase/Netlify
Static Hosting"]
C --> E["VPS + Nginx
ควบคุม server"]
D --> F["CDN/Domain
ผู้ใช้เข้าถึง"]
E --> F
# Netlify _redirects
# วางใน public หรือ dist root เพื่อแก้ SPA routing 404
/* /index.html 200
# nginx.conf
# Config สำหรับ Angular SPA บน VPS
server {
listen 80;
server_name example.com;
root /var/www/angular-app;
index index.html;
location / {
try_files $uri /index.html;
}
}
# ตัวอย่างการใช้งาน:
# build Angular แล้ว copy dist ไป /var/www/angular-app
# ใช้ certbot เพิ่ม HTTPS ให้ domain จริง
# Firebase Hosting deploy
ng add @angular/fire
ng deploy
# Netlify build command
npm run build -- --configuration production
# ตัวอย่างการใช้งาน:
# ตั้ง publish directory เป็น dist/<project-name>/browser หรือ dist/<project-name> ตาม Angular version
_redirects หรือ try_files สำหรับ SPA routing