من یک وباپلیکیشن React + Vite (SPA) روی سرور Ubuntu دارم که با Nginx سرو میشود و جلوی آن ArvanCloud CDN/Proxy قرار دارد.
مشکل این است که با وجود اینکه روی سرور build جدید موجود است و فایلهای dist به درستی تولید شدهاند، روی دامنه آنلاین هنوز نسخه قدیمی HTML/asset سرو میشود و در نتیجه اپلیکیشن به Supabase قدیمی وصل میشود.
روی دیسک سرور، فایلهای build جدید به این Supabase اشاره میکنند:
https://xtkpzkrgkhwgqkvuayak.supabase.co
اما در نسخه آنلاین، گاهی یک فایل index-*.js دیگری لود میشود که داخلش Supabase قدیمی دیده میشود:
https://qpcixoizletxfdyxkprv.supabase.co
این یعنی در لایه Arvan/Edge یا تنظیمات Origin/Cache هنوز فایلهای قدیمی در حال سرو شدن است.
وضعیت فعلی و شواهد (برای فریلنسر)
روی سرور:
مسیر پروژه: /var/www/erp.baazboard.ir
خروجی build در: /var/www/erp.baazboard.ir/dist
dist/index.html و dist/assets/* وجود دارند.
Nginx root روی همین dist تنظیم شده.
تستها نشان میدهد:
روی فایلهای dist/assets/index-*.js → Supabase جدید است.
اما روی نسخه آنلاین → گاهی asset دیگری سرو میشود که روی دیسک وجود ندارد (Origin 404 ولی Edge 200).
کارهایی که فریلنسر باید انجام دهد (Scope دقیق)
بررسی کامل مسیر Deploy
اطمینان از اینکه build با branch درست انجام شده و فایلها واقعاً روی سرور جایگزین شدهاند.
بررسی اینکه Nginx دقیقاً همان dist را سرو میکند (نه مسیر دیگر/فایل دیگر).
تشخیص منبع نسخه قدیمی
تست و مقایسهی خروجی Origin و Edge:
curl روی 127.0.0.1 با Host Header
curl روی دامنه عمومی
مشخص کردن اینکه مشکل از کجاست:
Cache Arvan / Origin mismatch / Ruleهای caching / پروتکل HTTP/HTTPS بین Arvan و Origin / Service Worker / HTML caching
رفع نهایی و پایدار
اعمال تنظیمات درست کش:
/ و /index.html باید no-store/no-cache باشند (هم روی Origin و هم روی Arvan)
/assets/* میتواند long-cache باشد
پاکسازی (Purge/Invalidate) صحیح در Arvan برای مسیرهای لازم
اگر لازم شد، تنظیم Ruleهای Arvan برای bypass یا cache key صحیح
تحویل خروجی + گزارش
یک گزارش کوتاه شامل:
علت دقیق مشکل
اقدام انجام شده
دستورهای تست و خروجیهای قبل/بعد
پیشنهاد جلوگیری از تکرار (Best practice)
معیار تحویل (Acceptance Criteria)
در مرورگر و روی سرور، با دستورهای تست زیر:
فایل index.html آنلاین با نسخه سرور یکی باشد (hash یکسان یا حداقل لینک asset مطابق dist باشد).
فایل index-*.js آنلاین حتماً Supabase جدید را نشان دهد.
هیچ مسیر/asset قدیمی که روی دیسک نیست، از Edge سرو نشود.
پس از Deploy:
اپ به Supabase جدید وصل شود و دیتای قدیمی نمایش داده نشود.
یک بار هم تست در حالت Incognito و بعد از hard refresh انجام شود.
این آگهی از وبسایت پونیشا پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت پونیشا برین و از اونجا برای این شغل اقدام کنین.
هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک، با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.