mirror of
https://github.com/mmahdium/portfolio.git
synced 2025-12-20 09:23:54 +01:00
5.4 KiB
5.4 KiB
راهنمای تست SSG (Static Site Generation)
چطور بفهمیم SSG درست کار میکنه؟
1. بررسی فایلهای تولید شده
اول بررسی کن که فایلهای HTML واقعاً تولید شدن:
# بررسی ساختار فایلها
ls .output/public/blog
ls .output/public/fa/blog
# باید این فایلها رو ببینی:
# - index.html (صفحه لیست بلاگ)
# - getting-started-with-nuxt-content/index.html
# - nuxt-ui-components/index.html
# - typescript-best-practices/index.html
2. اجرای Preview Server
pnpm preview
این command یک static file server ساده راهاندازی میکنه که فقط فایلهای HTML رو serve میکنه (بدون Node.js server).
3. تستهای اصلی برای تأیید SSG
✅ تست 1: بررسی HTML Source
- مرورگر رو باز کن و برو به:
http://localhost:3000/blog - کلیک راست کن و "View Page Source" یا
Ctrl+Uبزن - چیزی که باید ببینی:
- تمام محتوای HTML از قبل موجود هست (نه فقط
<div id="app"></div>) - تگهای
<meta>برای SEO - محتوای کامل پستهای بلاگ در HTML
- اگه فقط یک div خالی دیدی = SSG کار نکرده ❌
- اگه محتوای کامل دیدی = SSG موفق ✅
- تمام محتوای HTML از قبل موجود هست (نه فقط
✅ تست 2: بررسی Network با اینترنت قطع
- مرورگر رو باز کن
- DevTools رو باز کن (
F12) - به تب Network برو
- صفحه رو Refresh کن
- چیزی که باید ببینی:
- فقط یک request برای
index.html(نه API call برای fetch کردن پستها) - فایل HTML حجم زیادی داره (چون محتوا توش هست)
- اگه API call دیدی = SSR یا CSR هست، نه SSG ❌
- اگه فقط HTML دیدی = SSG موفق ✅
- فقط یک request برای
✅ تست 3: Disable JavaScript
- DevTools رو باز کن (
F12) Ctrl+Shift+Pبزن (Command Palette)- تایپ کن: "Disable JavaScript"
- صفحه رو Refresh کن
- چیزی که باید ببینی:
- محتوای بلاگ همچنان نمایش داده میشه
- فقط interactive features کار نمیکنن (مثل navigation)
- اگه صفحه خالی شد = SSG نیست ❌
- اگه محتوا نمایش داده شد = SSG موفق ✅
✅ تست 4: بررسی سرعت بارگذاری
- DevTools > Network > Throttling رو روی "Fast 3G" بذار
- صفحه رو Refresh کن
- چیزی که باید ببینی:
- محتوا خیلی سریع نمایش داده میشه (حتی با اینترنت کند)
- Time to First Contentful Paint (FCP) کمتر از 1 ثانیه
- SSG = محتوا فوری نمایش داده میشه ✅
- SSR/CSR = باید منتظر بمونی تا محتوا load بشه ❌
✅ تست 5: بررسی Sitemap
# بررسی sitemap
curl http://localhost:3000/sitemap_index.xml
# یا در مرورگر:
# http://localhost:3000/sitemap_index.xml
باید لیست تمام URLهای بلاگ رو ببینی.
4. مقایسه SSG با SSR/CSR
| ویژگی | SSG (Static) | SSR (Server) | CSR (Client) |
|---|---|---|---|
| HTML در source | ✅ کامل | ✅ کامل | ❌ خالی |
| نیاز به Node.js | ❌ نه | ✅ بله | ❌ نه |
| API Calls | ❌ نه | ✅ بله | ✅ بله |
| سرعت | ⚡ خیلی سریع | 🚀 سریع | 🐌 کند |
| SEO | ✅ عالی | ✅ عالی | ⚠️ ضعیف |
| هزینه Hosting | 💰 ارزان | 💰💰 گران | 💰 ارزان |
5. تست با curl (بدون مرورگر)
# دریافت HTML خام
curl http://localhost:3000/blog/getting-started-with-nuxt-content
# اگه محتوای کامل HTML رو دیدی = SSG موفق ✅
# اگه فقط یک div خالی دیدی = SSG کار نکرده ❌
6. بررسی فایل HTML مستقیماً
# باز کردن فایل HTML در مرورگر
start .output/public/blog/getting-started-with-nuxt-content/index.html
# یا در VSCode:
code .output/public/blog/getting-started-with-nuxt-content/index.html
باید تمام محتوای پست رو در HTML ببینی.
🎯 نتیجهگیری
SSG موفق است اگر:
- ✅ فایلهای HTML با محتوای کامل تولید شدن
- ✅ View Source محتوای کامل رو نشون میده
- ✅ بدون JavaScript هم محتوا نمایش داده میشه
- ✅ هیچ API call برای fetch کردن محتوا نیست
- ✅ سرعت بارگذاری خیلی سریعه
- ✅ Sitemap تولید شده
SSG کار نکرده اگر:
- ❌ View Source فقط یک div خالی نشون میده
- ❌ API call برای fetch کردن پستها وجود داره
- ❌ بدون JavaScript صفحه خالی میشه
- ❌ محتوا با تأخیر load میشه
🚀 Deploy
وقتی مطمئن شدی SSG درست کار میکنه، میتونی deploy کنی:
# فولدر .output/public رو به هر static hosting آپلود کن:
# - Vercel
# - Netlify
# - Cloudflare Pages
# - GitHub Pages
# - AWS S3 + CloudFront
هیچ Node.js server لازم نیست! فقط فایلهای استاتیک.