pub-xxx.r2.dev returns 503 for cross-origin sub-resource requests (img tags, fetch) due to Cloudflare Bot Management on the r2.dev dev domain. Direct browser navigation works but programmatic loading fails, so all uploaded images appeared as placeholders after upload. Fix: route all image display through a same-origin /api/img?key=... proxy that fetches from R2 via the S3 API server-side. API responses (profile, children, memories) now return proxy URLs. After upload, UI state is updated with proxy URLs directly rather than raw R2 URLs. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __tests__ | ||
| app | ||
| components | ||
| db | ||
| hooks | ||
| lib | ||
| scripts | ||
| types | ||
| auth.ts | ||
| middleware.ts | ||