| # رفع مشکل دانلود HTML در Hugging Face Docker Space | |
| ## مشکل | |
| وقتی روی Hugging Face Space اجرا میشود، به جای نمایش HTML، از کاربر میخواهد فایل index.html را دانلود کند. | |
| ## راه حلهای اعمال شده | |
| ### 1. تنظیم صریح Content-Type Headers | |
| ```python | |
| return HTMLResponse( | |
| content=content, | |
| media_type="text/html", | |
| headers={ | |
| "Content-Type": "text/html; charset=utf-8", | |
| "X-Content-Type-Options": "nosniff" | |
| } | |
| ) | |
| ``` | |
| ### 2. اصلاح WORKSPACE_ROOT | |
| در Docker container، مسیر به `/app` تغییر یافت: | |
| ```python | |
| WORKSPACE_ROOT = Path("/app" if Path("/app").exists() else ...) | |
| ``` | |
| ### 3. بررسی Dockerfile | |
| Dockerfile باید: | |
| - WORKDIR را `/app` تنظیم کند ✅ | |
| - فایلها را به `/app` کپی کند ✅ | |
| - Port 7860 را expose کند ✅ | |
| ## تست | |
| بعد از rebuild در Hugging Face: | |
| 1. به Space خود بروید | |
| 2. روی URL کلیک کنید | |
| 3. باید HTML به جای دانلود نمایش داده شود | |
| ## اگر هنوز مشکل دارید | |
| ### بررسی Logs در Hugging Face: | |
| 1. به Space Settings بروید | |
| 2. Logs را بررسی کنید | |
| 3. ببینید آیا خطایی وجود دارد | |
| ### بررسی Path: | |
| در logs باید ببینید: | |
| ``` | |
| ✓ Mounted static files from /app/static | |
| ✓ Database initialized at /app/data/database/crypto_monitor.db | |
| ``` | |
| ### بررسی Content-Type: | |
| در browser DevTools (F12): | |
| - Network tab را باز کنید | |
| - Request به `/` را بررسی کنید | |
| - Response Headers را ببینید | |
| - باید `Content-Type: text/html; charset=utf-8` باشد | |
| ## تغییرات اعمال شده | |
| ✅ Headers صریح برای HTMLResponse | |
| ✅ WORKSPACE_ROOT اصلاح شد | |
| ✅ Content-Type به صورت explicit تنظیم شد | |
| ✅ X-Content-Type-Options اضافه شد | |