fix: guard service worker cache.put against non-http(s) schemes; correct docs to match actual nginx domain mapping
This commit is contained in:
+5
-5
@@ -4,10 +4,10 @@ DB_PASSWORD=postgres
|
|||||||
DB_NAME=dating_app
|
DB_NAME=dating_app
|
||||||
DB_PORT=5432
|
DB_PORT=5432
|
||||||
|
|
||||||
# پورتهایی که روی هاست منتشر میشن؛ نگینکس خودت رو به این پورتها proxy_pass کن
|
# پورتهای داخلی کانتینرها (nginx خودت با نام کانتینر بهشون proxy_pass میده، نه از این پورتها روی هاست)
|
||||||
APP_PORT=8080 # -> api.brainito.ir
|
APP_PORT=8080 # -> brainito.ir
|
||||||
WEB_PORT=3000 # -> brainito.ir
|
WEB_PORT=3000 # -> app.brainito.ir
|
||||||
ADMIN_PORT=3001 # -> admin.brainito.ir
|
ADMIN_PORT=3001 # -> panel.brainito.ir
|
||||||
|
|
||||||
# آدرس API که موقع build توی باندل کلاینت web/admin جاسازی میشه (باید از مرورگر کاربر قابلدسترس باشه)
|
# آدرس API که موقع build توی باندل کلاینت web/admin جاسازی میشه (باید از مرورگر کاربر قابلدسترس باشه)
|
||||||
PUBLIC_API_URL=https://api.brainito.ir/api/v1
|
PUBLIC_API_URL=https://brainito.ir/api/v1
|
||||||
|
|||||||
@@ -19,13 +19,15 @@ cp .env.example .env # مقادیر رو با دامنه/رمزهای واقع
|
|||||||
docker compose up -d --build
|
docker compose up -d --build
|
||||||
```
|
```
|
||||||
|
|
||||||
این کار ۴ کانتینر بالا میآره: `postgres`, `backend` (پورت `APP_PORT`), `web` (پورت `WEB_PORT`), `admin` (پورت `ADMIN_PORT`).
|
این کار ۴ کانتینر بالا میآره: `postgres`, `backend`, `web`, `admin`.
|
||||||
کامپوز هیچ وبسروری بالا نمیآره؛ ریورسپروکسی و سابدامینها با nginx خودت روی هاست ست میشن، مثلاً:
|
کامپوز هیچ وبسروری بالا نمیآره؛ ریورسپروکسی و سابدامینها با nginx خودت روی هاست ست میشن. چون کانتینر nginx روی همون شبکهی داکری این کامپوز نشسته، میتونه مستقیم با نام کانتینر بهشون proxy_pass بده (بهجای پورت هاست):
|
||||||
|
|
||||||
| سابدامین | proxy_pass به |
|
| دامنه | proxy_pass به |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `brainito.ir` | `127.0.0.1:${WEB_PORT}` |
|
| `brainito.ir` | `http://dating-app-backend-1:8080` |
|
||||||
| `admin.brainito.ir` | `127.0.0.1:${ADMIN_PORT}` |
|
| `app.brainito.ir` | `http://dating-app-web-1:3000` |
|
||||||
| `api.brainito.ir` | `127.0.0.1:${APP_PORT}` |
|
| `panel.brainito.ir` | `http://dating-app-admin-1:3000` |
|
||||||
|
|
||||||
|
(نام کانتینرها بر اساس `name: dating-app` توی کامپوز و پیشوند سرویس ساخته میشن؛ اگه پروژه رو با نام دیگهای بالا بیاری این نامها عوض میشن.)
|
||||||
|
|
||||||
سکرتهای اختصاصی بکاند (JWT، DB و...) توی `backend/.env` میمونن و از اونجا با `env_file` به سرویس `backend` پاس داده میشن؛ `.env` ریشه فقط برای متغیرهای مشترک کامپوز (پورتها، اطلاعات پستگرس، آدرس عمومی API) استفاده میشه.
|
سکرتهای اختصاصی بکاند (JWT، DB و...) توی `backend/.env` میمونن و از اونجا با `env_file` به سرویس `backend` پاس داده میشن؛ `.env` ریشه فقط برای متغیرهای مشترک کامپوز (پورتها، اطلاعات پستگرس، آدرس عمومی API) استفاده میشه.
|
||||||
|
|||||||
+2
-1
@@ -24,13 +24,14 @@ self.addEventListener("fetch", (event) => {
|
|||||||
const url = new URL(event.request.url);
|
const url = new URL(event.request.url);
|
||||||
|
|
||||||
if (event.request.method !== "GET") return;
|
if (event.request.method !== "GET") return;
|
||||||
|
if (!url.protocol.startsWith("http")) return;
|
||||||
if (url.pathname.startsWith("/api")) return;
|
if (url.pathname.startsWith("/api")) return;
|
||||||
|
|
||||||
event.respondWith(
|
event.respondWith(
|
||||||
fetch(event.request)
|
fetch(event.request)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
const resClone = res.clone();
|
const resClone = res.clone();
|
||||||
caches.open(CACHE_NAME).then((cache) => cache.put(event.request, resClone));
|
caches.open(CACHE_NAME).then((cache) => cache.put(event.request, resClone).catch(() => {}));
|
||||||
return res;
|
return res;
|
||||||
})
|
})
|
||||||
.catch(() => caches.match(event.request))
|
.catch(() => caches.match(event.request))
|
||||||
|
|||||||
Reference in New Issue
Block a user