From dac78b55df28accb52974a71144442ba50fda568 Mon Sep 17 00:00:00 2001 From: Nick Randall Date: Mon, 11 Dec 2023 15:14:57 -0700 Subject: [PATCH] Add support for css files in route manifest --- src/server/preload-route-assets.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/server/preload-route-assets.ts b/src/server/preload-route-assets.ts index 5013117e..bef79bb7 100644 --- a/src/server/preload-route-assets.ts +++ b/src/server/preload-route-assets.ts @@ -1,4 +1,4 @@ -import { EntryContext } from "@remix-run/server-runtime"; +import { EntryContext, LinkDescriptor } from "@remix-run/server-runtime"; type Link = { href: string; as: string }; @@ -62,8 +62,18 @@ export function preloadLinkedAssets(context: EntryContext, headers: Headers) { let links = context.staticHandlerContext.matches .flatMap((match) => { let route = context.routeModules[match.route.id]; - if (route.links instanceof Function) return route.links(); - return []; + const links: LinkDescriptor[] = []; + const routeDef = context.manifest.routes[match.route.id]; + if (routeDef?.css?.length) { + links.push( + ...routeDef.css.map((href) => ({ rel: "stylesheet", href })), + ); + } + if (route.links instanceof Function) { + links.push(...route.links()); + } + return links; + }) .map((link) => { if ("as" in link && "href" in link) {