این مقاله به عنوان محتوای تکمیلی برای مقاله اصلی با عنوان "رفع مشکلات برنامههای Blazor در پشت Nginx: هدرهای پروکسی معکوس، WebSockets و جهنم هدایت" ارائه شده است. این مقاله به بررسی ملاحظات خاص Blazor WebAssembly و میزبانی Blazor در یک زیرمسیر (مانند /dashboard) میپردازد.
Blazor WebAssembly به دلیل عدم وجود اتصال سرور پایدار، رفتار متفاوتی نسبت به Blazor Server در پشت Nginx دارد. این تفاوت باعث حذف یک دسته از مشکلات پروکسی معکوس میشود، اما همچنان ممکن است هدایتها، احراز هویت و URLهای مطلق به دلیل هدرهای ارسالی نادرست دچار مشکل شوند. پیکربندی حداقل Nginx برای Blazor WASM شامل تنظیمات پروکسی و هدرهای ضروری است.
هنگامی که Blazor WASM هنوز با مشکل مواجه میشود، معمولاً به دلیل شکستهای احراز هویت OAuth/OIDC، طرح اشتباه (http در مقابل https)، هاست نادرست، عدم وجود هدرهای ارسالی، شکستهای فراخوانی API به دلیل URLهای مطلق نادرست یا پیکربندی نادرست CORS است. این مشکلات معمولاً مربوط به فراداده پروکسی و نه مشکلات Blazor هستند. انتخاب بین Blazor WASM و Blazor Server بستگی به نیازهای پروژه دارد؛ WASM برای مواردی که به push سرور یا حالت سرور برای هر کاربر نیازی نیست و زیرساخت سادهتری مورد نظر است، مناسبتر است.
میزبانی Blazor در یک زیرمسیر به جای مسیر ریشه (/) پیچیدگیهای بیشتری را به همراه دارد و نیازمند پیکربندی صریح در هر دو Nginx و Blazor است. در Nginx، باید از trailing slash و proxy_redirect off استفاده شود. در Blazor Server، باید از app.UsePathBase("/dashboard") قبل از مسیریابی و نقاط پایانی استفاده کرد و در Blazor WASM، باید base href در wwwroot/index.html به درستی تنظیم شود.
مشاهده مطلب اصلی