Add hooks.server.ts for Workers for Platforms asset serving
Some checks failed
Deploy Site / deploy-chirho (push) Failing after 5s
Some checks failed
Deploy Site / deploy-chirho (push) Failing after 5s
This commit is contained in:
34
src/hooks.server.ts
Normal file
34
src/hooks.server.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
// For God so loved the world — John 3:16
|
||||
|
||||
import type { Handle } from '@sveltejs/kit';
|
||||
|
||||
/**
|
||||
* Server hooks for Workers for Platforms compatibility
|
||||
* In dispatch namespaces, static assets are not automatically served,
|
||||
* so we need to explicitly handle them using the ASSETS binding
|
||||
*/
|
||||
export const handle: Handle = async ({ event, resolve }) => {
|
||||
const { request, platform } = event;
|
||||
const url = new URL(request.url);
|
||||
|
||||
// Check if this is a static asset request (/_app/ path or known static extensions)
|
||||
const isStaticAssetChirho = url.pathname.startsWith('/_app/') ||
|
||||
url.pathname.match(/\.(js|css|woff2?|ttf|eot|png|jpg|jpeg|gif|svg|ico|webp|avif)$/i);
|
||||
|
||||
if (isStaticAssetChirho && platform?.env?.ASSETS) {
|
||||
try {
|
||||
// Forward to the ASSETS binding
|
||||
const responseChirho = await platform.env.ASSETS.fetch(request);
|
||||
if (responseChirho.status \!== 404) {
|
||||
return responseChirho;
|
||||
}
|
||||
} catch (errChirho) {
|
||||
console.error('[Hooks] Failed to fetch from ASSETS:', errChirho);
|
||||
}
|
||||
}
|
||||
|
||||
// Fall through to normal SvelteKit handling
|
||||
return resolve(event);
|
||||
};
|
||||
|
||||
// JESUS CHRIST IS LORD
|
||||
Reference in New Issue
Block a user