Im creating an sveltekit app that fetches json from /static/schemas/{param}.json
The schemas folder will contain hundreds of json files so I really dont want to import it.
Example route: http://localhost:5173/schema/test
[schema]/+page.server.js
export async function load({ fetch, params }) {
const { schema } = params;
const schemaFetch = await fetch(`/schemas/${schema}.json`, {
headers: {
'Content-Type': 'application/json'
}
});
const json = await schemaFetch.json();
return {json}
}
Locally http://localhost:5173/schema/test works like a charm, but when I deploy to prod I get 500.
Convox log:
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 TypeError: fetch failed
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 at fetch (file:///usr/src/app/build/shims.js:20346:13)
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 at async fetch (file:///usr/src/app/build/server/index.js:3641:18) {
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 cause: ConnectTimeoutError: Connect Timeout Error
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 at onConnectTimeout (file:///usr/src/app/build/shims.js:7301:26)
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 at file:///usr/src/app/build/shims.js:7248:46
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 at Immediate._onImmediate (file:///usr/src/app/build/shims.js:7289:9)
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 at process.processImmediate (node:internal/timers:476:21) {
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 code: 'UND_ERR_CONNECT_TIMEOUT'
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 }
2024-05-21T08:14:47Z service/web/0b8d8e2753d9443e90d44e6247b9dfb0 }
Note: If I try to fetch a non-existing json file, i get error 404.
Any help is deeply appreciated!!
Im using convox for production, and @sveltejs/adapter-node