@@ -70,6 +70,7 @@ class NextjsComponent extends Component {
7070 stillToMatch . delete ( this . pathPattern ( "api/*" , routesManifest ) ) ;
7171 stillToMatch . delete ( this . pathPattern ( "static/*" , routesManifest ) ) ;
7272 stillToMatch . delete ( this . pathPattern ( "_next/static/*" , routesManifest ) ) ;
73+ stillToMatch . delete ( this . pathPattern ( "_next/data/*" , routesManifest ) ) ;
7374
7475 // check for other api like paths
7576 for ( const path of stillToMatch ) {
@@ -445,6 +446,19 @@ class NextjsComponent extends Component {
445446
446447 const defaultEdgeLambdaPublishOutputs = await defaultEdgeLambda . publishVersion ( ) ;
447448
449+ cloudFrontOrigins [ 0 ] . pathPatterns [
450+ this . pathPattern ( "_next/data/*" , routesManifest )
451+ ] = {
452+ minTTL : 0 ,
453+ defaultTTL : 0 ,
454+ maxTTL : 31536000 ,
455+ allowedHttpMethods : [ "HEAD" , "GET" ] ,
456+ "lambda@edge" : {
457+ "origin-response" : `${ defaultEdgeLambdaOutputs . arn } :${ defaultEdgeLambdaPublishOutputs . version } ` ,
458+ "origin-request" : `${ defaultEdgeLambdaOutputs . arn } :${ defaultEdgeLambdaPublishOutputs . version } `
459+ }
460+ } ;
461+
448462 // validate that the custom config paths match generated paths in the manifest
449463 this . validatePathPatterns (
450464 Object . keys ( cloudFrontOtherInputs ) ,
@@ -453,7 +467,7 @@ class NextjsComponent extends Component {
453467 ) ;
454468
455469 // Add any custom cloudfront configuration
456- // this includes overrides for _next, static and api
470+ // this includes overrides for _next/data/*, _next/ static/*, static/*, api/*, and default cache behaviors
457471 Object . entries ( cloudFrontOtherInputs ) . map ( ( [ path , config ] ) => {
458472 const edgeConfig = {
459473 ...( config [ "lambda@edge" ] || { } )
@@ -486,19 +500,6 @@ class NextjsComponent extends Component {
486500 } ;
487501 } ) ;
488502
489- cloudFrontOrigins [ 0 ] . pathPatterns [
490- this . pathPattern ( "_next/data/*" , routesManifest )
491- ] = {
492- minTTL : 0 ,
493- defaultTTL : 0 ,
494- maxTTL : 31536000 ,
495- allowedHttpMethods : [ "HEAD" , "GET" ] ,
496- "lambda@edge" : {
497- "origin-response" : `${ defaultEdgeLambdaOutputs . arn } :${ defaultEdgeLambdaPublishOutputs . version } ` ,
498- "origin-request" : `${ defaultEdgeLambdaOutputs . arn } :${ defaultEdgeLambdaPublishOutputs . version } `
499- }
500- } ;
501-
502503 // make sure that origin-response is not set.
503504 // this is reserved for serverless-next.js usage
504505 const cloudFrontDefaults = cloudFrontDefaultsInputs || { } ;
0 commit comments