diff --git a/crates/turbopack-cli/src/dev/mod.rs b/crates/turbopack-cli/src/dev/mod.rs index ae1af46e74978..c6c1fb678754f 100644 --- a/crates/turbopack-cli/src/dev/mod.rs +++ b/crates/turbopack-cli/src/dev/mod.rs @@ -252,6 +252,7 @@ async fn source( let build_chunking_context = DevChunkingContext::builder( project_path, build_output_root, + build_output_root, build_output_root.join("chunks".to_string()), build_output_root.join("assets".to_string()), node_build_environment(), diff --git a/crates/turbopack-cli/src/dev/web_entry_source.rs b/crates/turbopack-cli/src/dev/web_entry_source.rs index 2e1d6e4d8a1b8..60a1082e41d1f 100644 --- a/crates/turbopack-cli/src/dev/web_entry_source.rs +++ b/crates/turbopack-cli/src/dev/web_entry_source.rs @@ -39,6 +39,7 @@ pub fn get_client_chunking_context( DevChunkingContext::builder( project_path, server_root, + server_root, server_root.join("/_chunks".to_string()), server_root.join("/_assets".to_string()), environment, diff --git a/crates/turbopack-dev/src/chunking_context.rs b/crates/turbopack-dev/src/chunking_context.rs index 539097230a05b..ecee70730ca39 100644 --- a/crates/turbopack-dev/src/chunking_context.rs +++ b/crates/turbopack-dev/src/chunking_context.rs @@ -77,8 +77,10 @@ pub struct DevChunkingContext { /// This path get stripped off of chunk paths before generating output asset /// paths. context_path: Vc, - /// This path is used to compute the url to request chunks or assets from + /// This path is used to compute the url to request chunks from output_root: Vc, + /// This path is used to compute the url to request assets from + client_root: Vc, /// Chunks are placed at this path chunk_root_path: Vc, /// Chunks reference source maps assets @@ -105,6 +107,7 @@ impl DevChunkingContext { pub fn builder( context_path: Vc, output_root: Vc, + client_root: Vc, chunk_root_path: Vc, asset_root_path: Vc, environment: Vc, @@ -113,6 +116,7 @@ impl DevChunkingContext { chunking_context: DevChunkingContext { context_path, output_root, + client_root, chunk_root_path, reference_chunk_source_maps: true, reference_css_chunk_source_maps: true, @@ -235,8 +239,8 @@ impl ChunkingContext for DevChunkingContext { let this = self.await?; let asset_path = ident.path().await?.to_string(); let asset_path = asset_path - .strip_prefix(&format!("{}/", this.output_root.await?.path)) - .context("expected output_root to contain asset path")?; + .strip_prefix(&format!("{}/", this.client_root.await?.path)) + .context("expected asset_path to contain client_root")?; Ok(Vc::cell(format!( "{}{}", diff --git a/crates/turbopack-tests/tests/execution.rs b/crates/turbopack-tests/tests/execution.rs index 46f5ca41f5fb8..ad4ef70c6f827 100644 --- a/crates/turbopack-tests/tests/execution.rs +++ b/crates/turbopack-tests/tests/execution.rs @@ -293,6 +293,7 @@ async fn run_test(prepared_test: Vc) -> Result> let chunking_context = DevChunkingContext::builder( project_root, chunk_root_path, + static_root_path, chunk_root_path, static_root_path, env, diff --git a/crates/turbopack-tests/tests/snapshot.rs b/crates/turbopack-tests/tests/snapshot.rs index ef2c3b2633f09..50eb9d35f1350 100644 --- a/crates/turbopack-tests/tests/snapshot.rs +++ b/crates/turbopack-tests/tests/snapshot.rs @@ -292,9 +292,16 @@ async fn run_test(resource: String) -> Result> { let chunking_context: Vc> = match options.runtime { Runtime::Dev => Vc::upcast( - DevChunkingContext::builder(project_root, path, chunk_root_path, static_root_path, env) - .runtime_type(options.runtime_type) - .build(), + DevChunkingContext::builder( + project_root, + path, + path, + chunk_root_path, + static_root_path, + env, + ) + .runtime_type(options.runtime_type) + .build(), ), Runtime::Build => Vc::upcast( BuildChunkingContext::builder(