diff --git a/packages/next/src/server/app-render/create-component-styles-and-scripts.tsx b/packages/next/src/server/app-render/create-component-styles-and-scripts.tsx index 5563c734f10894..5c29ad5a3b9efc 100644 --- a/packages/next/src/server/app-render/create-component-styles-and-scripts.tsx +++ b/packages/next/src/server/app-render/create-component-styles-and-scripts.tsx @@ -26,12 +26,6 @@ export async function createComponentStylesAndScripts({ const styles = cssHrefs ? cssHrefs.map((href, index) => { - // In dev, Safari and Firefox will cache the resource during HMR: - // - https://github.com/vercel/next.js/issues/5860 - // - https://bugs.webkit.org/show_bug.cgi?id=187726 - // Because of this, we add a `?v=` query to bypass the cache during - // development. We need to also make sure that the number is always - // increasing. const fullHref = `${ctx.assetPrefix}/_next/${href}${getAssetQueryString( ctx, true diff --git a/packages/next/src/server/app-render/get-asset-query-string.ts b/packages/next/src/server/app-render/get-asset-query-string.ts index 145f01f4004252..fd6f49e4805d09 100644 --- a/packages/next/src/server/app-render/get-asset-query-string.ts +++ b/packages/next/src/server/app-render/get-asset-query-string.ts @@ -1,13 +1,18 @@ import type { AppRenderContext } from './app-render' +const isDev = process.env.NODE_ENV === 'development' +const isTurbopack = !!process.env.TURBOPACK export function getAssetQueryString( ctx: AppRenderContext, addTimestamp: boolean ) { - const isDev = process.env.NODE_ENV === 'development' let qs = '' - if (isDev && addTimestamp) { + // In development we add the request timestamp to allow react to + // reload assets when a new RSC response is received. + // Turbopack handles HMR of assets itself and react doesn't need to reload them + // so this approach is not needed for Turbopack. + if (isDev && !isTurbopack && addTimestamp) { qs += `?v=${ctx.requestTimestamp}` } diff --git a/packages/next/src/server/app-render/get-layer-assets.tsx b/packages/next/src/server/app-render/get-layer-assets.tsx index 1f56bcb66f0ca9..553b9407ddf73b 100644 --- a/packages/next/src/server/app-render/get-layer-assets.tsx +++ b/packages/next/src/server/app-render/get-layer-assets.tsx @@ -95,7 +95,10 @@ export function getLayerAssets({ const scripts = scriptTags ? scriptTags.map((href, index) => { - const fullSrc = `${ctx.assetPrefix}/_next/${href}` + const fullSrc = `${ctx.assetPrefix}/_next/${href}${getAssetQueryString( + ctx, + true + )}` return