پیشفرضهای دیروز روی یک سرورِ تازه کار میکردند ولی روی سرورِ واقعی نه، و تستِ با .env واقعی نشانش داد: هر دو حالتِ شایع خنثیشان میکرد. مقدارِ موجود ولی ناقص: .env سرور از قبل DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1 دارد. چون مقدار خالی نبود، کاملاً جایگزینِ پیشفرض میشد و دامنهی api.math.tadrisino2.ir باز هم غایب میماند — یعنی همان «Disallowed Host» قبلی، و باز هم ویرایشِ دستیِ فایل. حالا دامنههای خودمان به مقدارِ محیطی اضافه میشوند نه جایگزینش؛ همین برای CSRF_TRUSTED_ORIGINS و CORS_ALLOWED_ORIGINS هم اعمال شد. مقدارِ موجود ولی خالی: PUBLIC_BASE_URL در .env هست و خالی است، و os.environ.get فقط وقتی کلید *نباشد* پیشفرض میدهد. نتیجهاش paymentUrl نسبی و callbackِ خالیِ زرینپال بود — خرابیای که فقط موقعِ اولین پرداختِ واقعی معلوم میشود. حالا مقدارِ خالی هم به پیشفرض میافتد. این سهتا همانهاییاند که تا امروز مسئولِ سرور باید دستی به .env اضافه میکرد و چون در .env.example هم نبودند، هر بار از نو کشف میشدند. حالا در همان فایل مستند شدهاند و تست نگهبانشان است. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
16 KiB
16 KiB