opennextjs / opennextjs-netlify

Open Next.js adapter for Netlify
https://opennext.js.org/netlify
676 stars 86 forks source link

[Bug]: Middleware returns cached response when using `getStaticPaths` and/or `revalidate` #1114

Closed hrishikesh-k closed 2 years ago

hrishikesh-k commented 2 years ago

Summary

The content served by a middleware, gets routed through a function. Immediately after a build, it returns correct response. However, after some time, the function starts returning cached content.

This was reported by a Pro user: https://netlify.zendesk.com/agent/tickets/77373 (Internal only).

All the files included in this issue are provided by them.

Steps to reproduce

Please refer to the ticket for the URLs to test as it might contain sensitive info (considering it's protected behind an auth).

A link to a reproduction repository

No response

Plugin version

4.1.0

More information about your build

What OS are you using?

No response

Your netlify.toml file

netlify.toml
```toml [[redirects]] from = "/" to = "/en" force = true [[redirects]] from = "/catchAll" to = "/en" force = true [[redirects]] from = "/catchAll/*" to = "/en/:splat" force = true [[redirects]] from = "/404" to = "/en" force = true [[headers]] for = "/*" [headers.values] X-XSS-Protection = "1; mode=block" [[headers]] for = "/*" [headers.values] X-Content-Type-Options = "nosniff" Access-Control-Allow-Origin = "*" Cache-Control = "private" [[headers]] for = "*.js" # js files should be set this way [headers.values] Cache-Control = "public, max-age=604800" [[headers]] for = "*.css" # css files too [headers.values] Cache-Control = "public, max-age=604800" [[headers]] for = "*.gif" # gif files too [headers.values] Cache-Control = "public, max-age=604800" [context.deploy-preview.environment] NEXT_PUBLIC_PREVIEW_ALWAYS = "true" ```

Your public/_redirects file

_redirects
N/A

Your next.config.js file

next.config.js
```JS module.exports = { assetPrefix: process.env.NODE_ENV === "development" || process.env.NEXT_PUBLIC_PREVIEW_ALWAYS == "true" ? "" : "https://thenextbeat.dj/", i18n: { localeDetection: true, locales: ["en", "nl", "fr", "de", "es"], // This is the catchAll locale you don't want to used. It's redirected automatically with redirects; // Credit from feature request thread at github: https://github.com/vercel/next.js/discussions/18419 defaultLocale: "en", }, async headers() { return [ { source: "/:path*", headers: [ { key: "Access-Control-Allow-Origin", value: "*", }, { key: "Cache-Control", value: "no-store", }, ], }, ]; }, images: { domains: ["images.ctfassets.net", "i.vimeocdn.com"], }, }; ```

Builds logs (or link to your logs)

Build logs
N/A

Function logs

Function logs
N/A

.next JSON files

required-server-files.json
```JSON { "version": 1, "config": { "env": {}, "webpack": null, "webpackDevMiddleware": null, "eslint": { "ignoreDuringBuilds": false }, "typescript": { "ignoreBuildErrors": false, "tsconfigPath": "tsconfig.json" }, "distDir": ".next", "cleanDistDir": true, "assetPrefix": "", "configOrigin": "next.config.js", "useFileSystemPublicRoutes": true, "generateEtags": true, "pageExtensions": [ "tsx", "ts", "jsx", "js" ], "target": "server", "poweredByHeader": true, "compress": false, "analyticsId": "", "images": { "deviceSizes": [ 640, 750, 828, 1080, 1200, 1920, 2048, 3840 ], "imageSizes": [ 16, 32, 48, 64, 96, 128, 256, 384 ], "path": "/_next/image", "loader": "default", "domains": [ "images.ctfassets.net", "i.vimeocdn.com" ], "disableStaticImages": false, "minimumCacheTTL": 60, "formats": [ "image/webp" ] }, "devIndicators": { "buildActivity": true, "buildActivityPosition": "bottom-right" }, "onDemandEntries": { "maxInactiveAge": 15000, "pagesBufferLength": 2 }, "amp": { "canonicalBase": "" }, "basePath": "", "sassOptions": {}, "trailingSlash": false, "i18n": { "localeDetection": true, "locales": [ "en", "nl", "fr", "de", "es" ], "defaultLocale": "en" }, "productionBrowserSourceMaps": false, "optimizeFonts": true, "excludeDefaultMomentLocales": true, "serverRuntimeConfig": {}, "publicRuntimeConfig": {}, "reactStrictMode": false, "httpAgentOptions": { "keepAlive": true }, "outputFileTracing": true, "staticPageGenerationTimeout": 60, "swcMinify": false, "experimental": { "cpus": 7, "sharedPool": true, "plugins": false, "profiling": false, "isrFlushToDisk": true, "workerThreads": false, "pageEnv": false, "optimizeImages": false, "optimizeCss": false, "scrollRestoration": false, "externalDir": false, "reactRoot": false, "disableOptimizedLoading": false, "gzipSize": true, "swcFileReading": true, "craCompat": false, "esmExternals": true, "isrMemoryCacheSize": 52428800, "concurrentFeatures": false, "serverComponents": false, "fullySpecified": false, "outputFileTracingRoot": "", "outputStandalone": false }, "configFileName": "next.config.js" }, "appDir": "/Users/stefcoenen/BP/the-next-beat-fe", "files": [ ".next/routes-manifest.json", ".next/server/pages-manifest.json", ".next/build-manifest.json", ".next/prerender-manifest.json", ".next/server/middleware-manifest.json", ".next/react-loadable-manifest.json", ".next/server/font-manifest.json", ".next/BUILD_ID" ], "ignore": [ "node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/**/*" ] } ```
routes-manifest.json
```JSON { "version": 3, "pages404": true, "basePath": "", "redirects": [ { "source": "/:path+/", "destination": "/:path+", "locale": false, "internal": true, "statusCode": 308, "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" } ], "headers": [ { "source": "/:nextInternalLocale(en|nl|fr|de|es)/:path*", "headers": [ { "key": "Access-Control-Allow-Origin", "value": "*" }, { "key": "Cache-Control", "value": "no-store" } ], "regex": "^(?:/(en|nl|fr|de|es))(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$" } ], "dynamicRoutes": [ { "page": "/[[...slug]]", "regex": "^(?:/(.+?))?(?:/)?$", "routeKeys": { "slug": "slug" }, "namedRegex": "^(?:/(?.+?))?(?:/)?$" } ], "staticRoutes": [ { "page": "/404", "regex": "^/404(?:/)?$", "routeKeys": {}, "namedRegex": "^/404(?:/)?$" }, { "page": "/500", "regex": "^/500(?:/)?$", "routeKeys": {}, "namedRegex": "^/500(?:/)?$" }, { "page": "/account", "regex": "^/account(?:/)?$", "routeKeys": {}, "namedRegex": "^/account(?:/)?$" }, { "page": "/account/account-deleted-verification", "regex": "^/account/account\\-deleted\\-verification(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/account\\-deleted\\-verification(?:/)?$" }, { "page": "/account/delete", "regex": "^/account/delete(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/delete(?:/)?$" }, { "page": "/account/edit", "regex": "^/account/edit(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/edit(?:/)?$" }, { "page": "/account/edit-password", "regex": "^/account/edit\\-password(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/edit\\-password(?:/)?$" }, { "page": "/account/email-verification-complete", "regex": "^/account/email\\-verification\\-complete(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/email\\-verification\\-complete(?:/)?$" }, { "page": "/account/email-verification-duration-expired", "regex": "^/account/email\\-verification\\-duration\\-expired(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/email\\-verification\\-duration\\-expired(?:/)?$" }, { "page": "/account/email-verification-failed", "regex": "^/account/email\\-verification\\-failed(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/email\\-verification\\-failed(?:/)?$" }, { "page": "/account/parental-approval", "regex": "^/account/parental\\-approval(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/parental\\-approval(?:/)?$" }, { "page": "/account/parental-approval-confirm-email", "regex": "^/account/parental\\-approval\\-confirm\\-email(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/parental\\-approval\\-confirm\\-email(?:/)?$" }, { "page": "/account/password-forgot", "regex": "^/account/password\\-forgot(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/password\\-forgot(?:/)?$" }, { "page": "/account/password-forgotten", "regex": "^/account/password\\-forgotten(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/password\\-forgotten(?:/)?$" }, { "page": "/account/sign-in", "regex": "^/account/sign\\-in(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/sign\\-in(?:/)?$" }, { "page": "/account/sign-out", "regex": "^/account/sign\\-out(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/sign\\-out(?:/)?$" }, { "page": "/account/sign-up", "regex": "^/account/sign\\-up(?:/)?$", "routeKeys": {}, "namedRegex": "^/account/sign\\-up(?:/)?$" } ], "dataRoutes": [ { "page": "/404", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/404.json$" }, { "page": "/500", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/500.json$" }, { "page": "/account", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account.json$" }, { "page": "/account/account-deleted-verification", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json$" }, { "page": "/account/delete", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json$" }, { "page": "/account/edit", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json$" }, { "page": "/account/edit-password", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json$" }, { "page": "/account/email-verification-complete", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json$" }, { "page": "/account/email-verification-duration-expired", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json$" }, { "page": "/account/email-verification-failed", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json$" }, { "page": "/account/parental-approval", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json$" }, { "page": "/account/parental-approval-confirm-email", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json$" }, { "page": "/account/password-forgot", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json$" }, { "page": "/account/password-forgotten", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json$" }, { "page": "/account/sign-in", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json$" }, { "page": "/account/sign-out", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json$" }, { "page": "/account/sign-up", "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json$" }, { "page": "/[[...slug]]", "routeKeys": { "slug": "slug" }, "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T(?:/(.+?))?\\.json$", "namedDataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T(?:/(?.+?))?\\.json$" } ], "i18n": { "localeDetection": true, "locales": [ "en", "nl", "fr", "de", "es" ], "defaultLocale": "en" }, "rewrites": [] } ```
prerender-manifest.json
```JSON { "version": 3, "routes": { "/en/account/edit": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json" }, "/nl/account/edit": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json" }, "/fr/account/edit": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json" }, "/de/account/edit": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json" }, "/es/account/edit": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit.json" }, "/en/account/email-verification-complete": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json" }, "/nl/account/email-verification-complete": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json" }, "/fr/account/email-verification-complete": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json" }, "/de/account/email-verification-complete": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json" }, "/es/account/email-verification-complete": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-complete.json" }, "/en/account/email-verification-duration-expired": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json" }, "/nl/account/email-verification-duration-expired": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json" }, "/fr/account/email-verification-duration-expired": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json" }, "/de/account/email-verification-duration-expired": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json" }, "/es/account/email-verification-duration-expired": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-duration-expired.json" }, "/en/account/email-verification-failed": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json" }, "/nl/account/email-verification-failed": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json" }, "/fr/account/email-verification-failed": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json" }, "/de/account/email-verification-failed": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json" }, "/es/account/email-verification-failed": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/email-verification-failed.json" }, "/en/account/edit-password": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json" }, "/nl/account/edit-password": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json" }, "/fr/account/edit-password": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json" }, "/de/account/edit-password": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json" }, "/es/account/edit-password": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/edit-password.json" }, "/en/account/parental-approval-confirm-email": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json" }, "/nl/account/parental-approval-confirm-email": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json" }, "/fr/account/parental-approval-confirm-email": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json" }, "/de/account/parental-approval-confirm-email": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json" }, "/es/account/parental-approval-confirm-email": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval-confirm-email.json" }, "/en/account": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account.json" }, "/nl/account": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account.json" }, "/fr/account": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account.json" }, "/de/account": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account.json" }, "/es/account": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account.json" }, "/en/account/parental-approval": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json" }, "/nl/account/parental-approval": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json" }, "/fr/account/parental-approval": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json" }, "/de/account/parental-approval": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json" }, "/es/account/parental-approval": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/parental-approval.json" }, "/en/account/password-forgotten": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json" }, "/nl/account/password-forgotten": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json" }, "/fr/account/password-forgotten": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json" }, "/de/account/password-forgotten": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json" }, "/es/account/password-forgotten": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgotten.json" }, "/en/account/sign-in": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json" }, "/nl/account/sign-in": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json" }, "/fr/account/sign-in": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json" }, "/de/account/sign-in": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json" }, "/es/account/sign-in": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-in.json" }, "/en/account/password-forgot": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json" }, "/nl/account/password-forgot": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json" }, "/fr/account/password-forgot": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json" }, "/de/account/password-forgot": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json" }, "/es/account/password-forgot": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/password-forgot.json" }, "/en/account/sign-out": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json" }, "/nl/account/sign-out": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json" }, "/fr/account/sign-out": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json" }, "/de/account/sign-out": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json" }, "/es/account/sign-out": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-out.json" }, "/en/account/sign-up": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json" }, "/nl/account/sign-up": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json" }, "/fr/account/sign-up": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json" }, "/de/account/sign-up": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json" }, "/es/account/sign-up": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/sign-up.json" }, "/en/account/account-deleted-verification": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json" }, "/nl/account/account-deleted-verification": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json" }, "/fr/account/account-deleted-verification": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json" }, "/de/account/account-deleted-verification": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json" }, "/es/account/account-deleted-verification": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/account-deleted-verification.json" }, "/en/account/delete": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json" }, "/nl/account/delete": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json" }, "/fr/account/delete": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json" }, "/de/account/delete": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json" }, "/es/account/delete": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/account/delete.json" }, "/en/404": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/404.json" }, "/nl/404": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/404.json" }, "/fr/404": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/404.json" }, "/de/404": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/404.json" }, "/es/404": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/404.json" }, "/en/500": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/500.json" }, "/nl/500": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/500.json" }, "/fr/500": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/500.json" }, "/de/500": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/500.json" }, "/es/500": { "initialRevalidateSeconds": false, "srcRoute": null, "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/500.json" }, "/de/JETZE-KAUFEN": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/JETZE-KAUFEN.json" }, "/en/where-to-buy": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/where-to-buy.json" }, "/es/COMPRAR-AHORA": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/COMPRAR-AHORA.json" }, "/fr/ACHETEZ-MAINTENANT": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/ACHETEZ-MAINTENANT.json" }, "/nl/KOOP-NU": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/KOOP-NU.json" }, "/de/LERNEN": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/LERNEN.json" }, "/en/learn-page": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/learn-page.json" }, "/es/APRENDER": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/APRENDER.json" }, "/fr/APPRENDRE": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/APPRENDRE.json" }, "/nl/LEER": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/LEER.json" }, "/de/GALERIE": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/GALERIE.json" }, "/en/gallery": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/gallery.json" }, "/es/GALERÍA": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/GALERÍA.json" }, "/fr/GALERIE": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/GALERIE.json" }, "/nl/GALERIJ": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/GALERIJ.json" }, "/de/FAQ": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/FAQ.json" }, "/en/faq": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq.json" }, "/es/FAQ": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/FAQ.json" }, "/fr/FAQ": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/FAQ.json" }, "/nl/faq": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/faq.json" }, "/de/SET-UP": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/SET-UP.json" }, "/en/SETUP": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/SETUP.json" }, "/es/CONFIGURACIÓN": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/CONFIGURACIÓN.json" }, "/fr/METTRE-EN-PLACE": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/METTRE-EN-PLACE.json" }, "/nl/SETUP": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/SETUP.json" }, "/de/set-up-video": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/set-up-video.json" }, "/en/set-up-video": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/set-up-video.json" }, "/es/Video-de-configuracion": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/Video-de-configuracion.json" }, "/fr/Video-d’installation": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/Video-d’installation.json" }, "/nl/set-up-video": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/set-up-video.json" }, "/de/bp-konto-erstellen": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/bp-konto-erstellen.json" }, "/en/create-bp-account": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/create-bp-account.json" }, "/es/Crear-cuenta-bp": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/Crear-cuenta-bp.json" }, "/fr/Creez-un-compte-bp": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/Creez-un-compte-bp.json" }, "/nl/maak-bp-account": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/maak-bp-account.json" }, "/de/djay-herunterladen": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/djay-herunterladen.json" }, "/en/download-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/download-djay.json" }, "/es/descargar-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/descargar-djay.json" }, "/fr/telechargez-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/telechargez-djay.json" }, "/nl/download-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/download-djay.json" }, "/de/wahlen-sie-beatport-oder-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/wahlen-sie-beatport-oder-djay.json" }, "/en/choose-beatport-or-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/choose-beatport-or-djay.json" }, "/es/eligir-beatport-o-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/eligir-beatport-o-djay.json" }, "/fr/choisissez-beatport-ou-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/choisissez-beatport-ou-djay.json" }, "/nl/kies-beatport-of-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/kies-beatport-of-djay.json" }, "/de/hier-anzeigen": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/hier-anzeigen.json" }, "/en/cue-here": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/cue-here.json" }, "/es/localizarse-aqui": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/localizarse-aqui.json" }, "/fr/cue-ici": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/cue-ici.json" }, "/nl/cue-hier": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/cue-hier.json" }, "/de/set-up-beatport-auf-mac": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/set-up-beatport-auf-mac.json" }, "/en/setup-beatport-on-mac": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/setup-beatport-on-mac.json" }, "/es/configuracion-de-beatport-en-mac": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/configuracion-de-beatport-en-mac.json" }, "/fr/configurer-beatport-sur-mac": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/configurer-beatport-sur-mac.json" }, "/nl/beatport-instellen-op-mac": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/beatport-instellen-op-mac.json" }, "/de/suchen": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/suchen.json" }, "/en/search": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/search.json" }, "/es/buscar": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/buscar.json" }, "/fr/recherche": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/recherche.json" }, "/nl/zoeken": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/zoeken.json" }, "/de/datenschutzerklarung": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/datenschutzerklarung.json" }, "/en/privacy-policy": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/privacy-policy.json" }, "/es/política-de-privacidad": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/política-de-privacidad.json" }, "/fr/politique-de-confidentialite": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/politique-de-confidentialite.json" }, "/nl/privacybeleid": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/privacybeleid.json" }, "/de/set-up-beatport-auf-windows": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/set-up-beatport-auf-windows.json" }, "/en/setup-beatport-on-windows": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/setup-beatport-on-windows.json" }, "/es/configuracion-de-beatport-en-windows": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/configuracion-de-beatport-en-windows.json" }, "/fr/configurer-beatport-sur-windows": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/configurer-beatport-sur-windows.json" }, "/nl/beatport-instellen-op-windows": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/beatport-instellen-op-windows.json" }, "/de/set-up-video-mac-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/set-up-video-mac-djay.json" }, "/en/set-up-video-body-mac-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/set-up-video-body-mac-djay.json" }, "/es/configuracion-del-video-mac-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/configuracion-del-video-mac-djay.json" }, "/fr/installation-video-mac-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/installation-video-mac-djay.json" }, "/nl/set-up-video-mac-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/set-up-video-mac-djay.json" }, "/de/einzelhändler": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/einzelhändler.json" }, "/en/retailers": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/retailers.json" }, "/es/minoristas": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/minoristas.json" }, "/fr/detaillants": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/detaillants.json" }, "/nl/verkoopppunten": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/verkoopppunten.json" }, "/de/nutzungsbedingungen": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/nutzungsbedingungen.json" }, "/en/terms-of-use": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/terms-of-use.json" }, "/es/terminis-de-uso": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/terminis-de-uso.json" }, "/fr/conditions-d'utilisation": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/conditions-d'utilisation.json" }, "/nl/gebruiksvoorwaarden": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/gebruiksvoorwaarden.json" }, "/de/Set-up-Video-macos": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/Set-up-Video-macos.json" }, "/en/set-up-video-macos": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/set-up-video-macos.json" }, "/es/Video-de-configuracion-macos": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/Video-de-configuracion-macos.json" }, "/fr/Video-d’installation-macos": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/Video-d’installation-macos.json" }, "/nl/set-up-video-macos": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/set-up-video-macos.json" }, "/de/support": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/support.json" }, "/en/support": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/support.json" }, "/es/soporte": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/soporte.json" }, "/fr/support": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/support.json" }, "/nl/support": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/support.json" }, "/de/djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/djay.json" }, "/en/djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/djay.json" }, "/es/djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/djay.json" }, "/fr/djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/djay.json" }, "/nl/djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/djay.json" }, "/de/beatport": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/beatport.json" }, "/en/beatport": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/beatport.json" }, "/es/beatport": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/beatport.json" }, "/fr/beatport": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/beatport.json" }, "/nl/beatport": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/beatport.json" }, "/de/hardware-setup": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/hardware-setup.json" }, "/en/hardware-setup": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/hardware-setup.json" }, "/es/hardware-setup": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/hardware-setup.json" }, "/fr/hardware-setup": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/hardware-setup.json" }, "/nl/hardware-setup": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/hardware-setup.json" }, "/de/driver-installieren ": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/driver-installieren .json" }, "/en/driver-install": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/driver-install.json" }, "/es/instalacion-del-controlador ": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/instalacion-del-controlador .json" }, "/fr/installation-du-pilote ": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/installation-du-pilote .json" }, "/nl/driver-installeren": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/driver-installeren.json" }, "/de/PLAY": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/PLAY.json" }, "/en/PLAY": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/PLAY.json" }, "/es/PLAY": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/PLAY.json" }, "/fr/PLAY": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/PLAY.json" }, "/nl/PLAY": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/PLAY.json" }, "/de": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de.json" }, "/en": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en.json" }, "/es": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es.json" }, "/fr": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr.json" }, "/nl": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl.json" }, "/de/welcom-page": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/welcom-page.json" }, "/en/welcome-page": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/welcome-page.json" }, "/es/welcom-page": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/welcom-page.json" }, "/fr/welcom-page": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/welcom-page.json" }, "/nl/welcom-page": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/welcom-page.json" }, "/de/set-up-mobile-gerät": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/de/set-up-mobile-gerät.json" }, "/en/setup-mobile-device": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/setup-mobile-device.json" }, "/es/configuracion-del-dispositivo-movil": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/es/configuracion-del-dispositivo-movil.json" }, "/fr/configurer-un-appareil-mobile": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/fr/configurer-un-appareil-mobile.json" }, "/nl/mobiel-apparaat-instellen": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/nl/mobiel-apparaat-instellen.json" }, "/en/faq/beatport-dj-faq": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq.json" }, "/en/faq/djay-faq": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq.json" }, "/en/faq/account-information": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/account-information.json" }, "/en/faq/dj-controller-faq": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq.json" }, "/en/faq/installation-and-setup-faq": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq.json" }, "/en/faq/djay-faq/which-macos-version-is-required-to-install-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/which-macos-version-is-required-to-install-djay.json" }, "/en/faq/djay-faq/which-windows-version-is-required-to-install-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/which-windows-version-is-required-to-install-djay.json" }, "/en/faq/djay-faq/when-loading-a-track-an-error-message-appears-what-is-wrong": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/when-loading-a-track-an-error-message-appears-what-is-wrong.json" }, "/en/faq/beatport-dj-faq/what-is-beatport": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/what-is-beatport.json" }, "/en/faq/beatport-dj-faq/what-is-beatsource": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/what-is-beatsource.json" }, "/en/faq/beatport-dj-faq/can-i-make-a-playlist-from-mp3-tracks-that-are-on-my-computer": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/can-i-make-a-playlist-from-mp3-tracks-that-are-on-my-computer.json" }, "/en/faq/beatport-dj-faq/can-i-use-speakers-and-headphones-at-the-same-time-when-djing-in-the": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/can-i-use-speakers-and-headphones-at-the-same-time-when-djing-in-the.json" }, "/en/faq/beatport-dj-faq/can-i-use-key-match-in-beatport-dj-app": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/can-i-use-key-match-in-beatport-dj-app.json" }, "/en/faq/beatport-dj-faq/when-i-play-the-sound-is-sometimes-a-bit-distorted-or-lacking": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/when-i-play-the-sound-is-sometimes-a-bit-distorted-or-lacking.json" }, "/en/faq/djay-faq/can-i-use-my-own-samples": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/can-i-use-my-own-samples.json" }, "/en/faq/beatport-dj-faq/can-i-load-and-use-mp3-tracks-that-are-locally-on-my-computer": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/can-i-load-and-use-mp3-tracks-that-are-locally-on-my-computer.json" }, "/en/faq/beatport-dj-faq/can-i-download-the-playlist-in-beatport-dj-app": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/can-i-download-the-playlist-in-beatport-dj-app.json" }, "/en/faq/dj-controller-faq/can-i-connect-a-stereo-microphone": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/can-i-connect-a-stereo-microphone.json" }, "/en/faq/dj-controller-faq/how-do-i-scratch": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-do-i-scratch.json" }, "/en/faq/beatport-dj-faq/how-many-effects-can-i-use-in-beatport-dj-app": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/beatport-dj-faq/how-many-effects-can-i-use-in-beatport-dj-app.json" }, "/en/faq/dj-controller-faq/how-is-the-dj-controller-powered": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-is-the-dj-controller-powered.json" }, "/en/faq/djay-faq/how-many-effects-can-i-use-in-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/how-many-effects-can-i-use-in-djay.json" }, "/en/faq/dj-controller-faq/can-i-stop-automatic-start-of-a-track-after-loading": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/can-i-stop-automatic-start-of-a-track-after-loading.json" }, "/en/faq/djay-faq/can-i-set-the-sensitivity-of-the-tempo-slider": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/can-i-set-the-sensitivity-of-the-tempo-slider.json" }, "/en/faq/djay-faq/can-i-assign-certain-buttons-and-faders-differently-as-on-default-mode": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/can-i-assign-certain-buttons-and-faders-differently-as-on-default-mode.json" }, "/en/faq/djay-faq/when-i-move-the-crossfader-while-using-djay-pro-headphone-cue-is": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/djay-faq/when-i-move-the-crossfader-while-using-djay-pro-headphone-cue-is.json" }, "/en/faq/dj-controller-faq/the-volume-of-the-microphone-is-too-soft-or-distorted": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/the-volume-of-the-microphone-is-too-soft-or-distorted.json" }, "/en/faq/dj-controller-faq/when-the-dj-controller-is-connected-through-usb-it-is-not-recognized": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/when-the-dj-controller-is-connected-through-usb-it-is-not-recognized.json" }, "/en/faq/dj-controller-faq/how-do-i-erase-a-hot-cue": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-do-i-erase-a-hot-cue.json" }, "/en/faq/dj-controller-faq/how-do-i-stop-the-dj-controllers-demo-mode": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-do-i-stop-the-dj-controllers-demo-mode.json" }, "/en/faq/dj-controller-faq/how-do-i-start-the-demo-mode-of-the-dj-controller": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-do-i-start-the-demo-mode-of-the-dj-controller.json" }, "/en/faq/dj-controller-faq/how-do-i-connect-the-ios-device-to-the-next-beat-dj-controller": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-do-i-connect-the-ios-device-to-the-next-beat-dj-controller.json" }, "/en/faq/dj-controller-faq/how-can-i-have-two-tracks-automatically-played-in-tempo": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/how-can-i-have-two-tracks-automatically-played-in-tempo.json" }, "/en/faq/dj-controller-faq/does-the-microphone-input-also-support-phantom-power": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/does-the-microphone-input-also-support-phantom-power.json" }, "/en/faq/dj-controller-faq/there-is-no-sound-when-i-try-to-play-a-sample": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/there-is-no-sound-when-i-try-to-play-a-sample.json" }, "/en/faq/dj-controller-faq/can-i-also-play-sound-with-the-bluetooth-option": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/can-i-also-play-sound-with-the-bluetooth-option.json" }, "/en/faq/installation-and-setup-faq/how-can-i-update-the-firmware": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/how-can-i-update-the-firmware.json" }, "/en/faq/installation-and-setup-faq/how-do-i-connect-my-mobile-device-to-the-dj-controller": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/how-do-i-connect-my-mobile-device-to-the-dj-controller.json" }, "/en/faq/installation-and-setup-faq/do-i-need-a-driver-for-windows-10-and-above": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/do-i-need-a-driver-for-windows-10-and-above.json" }, "/en/faq/dj-controller-faq/my-mobile-device-does-not-have-a-jack-headphone-connection-how-do-i-connect": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/my-mobile-device-does-not-have-a-jack-headphone-connection-how-do-i-connect.json" }, "/en/faq/installation-and-setup-faq/i-dont-have-a-voucher-code-can-i-sign-up-to-the-website": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/i-dont-have-a-voucher-code-can-i-sign-up-to-the-website.json" }, "/en/faq/installation-and-setup-faq/do-i-need-a-driver-for-macos": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/do-i-need-a-driver-for-macos.json" }, "/en/faq/dj-controller-faq/do-i-need-an-extra-sound-card-to-dj": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/dj-controller-faq/do-i-need-an-extra-sound-card-to-dj.json" }, "/en/faq/installation-and-setup-faq/do-i-need-speakers-and-headphones-to-dj": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/do-i-need-speakers-and-headphones-to-dj.json" }, "/en/faq/installation-and-setup-faq/how-do-i-connect-the-dj-controller-to-a-usb-c-port": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/how-do-i-connect-the-dj-controller-to-a-usb-c-port.json" }, "/en/faq/installation-and-setup-faq/why-cant-i-hear-any-sound-when-playing": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/why-cant-i-hear-any-sound-when-playing.json" }, "/en/faq/installation-and-setup-faq/the-sound-is-distorted-whats-wrong": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/the-sound-is-distorted-whats-wrong.json" }, "/en/faq/installation-and-setup-faq/how-can-i-listen-to-the-sound-through-the-headphones-if-i-want-to-dj-with-a": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/how-can-i-listen-to-the-sound-through-the-headphones-if-i-want-to-dj-with-a.json" }, "/en/faq/installation-and-setup-faq/is-an-internet-connection-required": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/faq/installation-and-setup-faq/is-an-internet-connection-required.json" }, "/en/courses/the-setup": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-setup.json" }, "/en/courses/the-expert": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-expert.json" }, "/en/courses/the-intermediate": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-intermediate.json" }, "/en/courses/the-basics": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-basics.json" }, "/en/courses/getting-started": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/getting-started.json" }, "/en/courses/the-essentials-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-essentials-djay.json" }, "/en/courses/the-intermediate-djay": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-intermediate-djay.json" }, "/en/courses/the-setup-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/courses/the-setup-1.json" }, "/en/lesson/mc-ing-with-a-microphone": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/mc-ing-with-a-microphone.json" }, "/en/lesson/the-next-beat-dj-controller": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/the-next-beat-dj-controller.json" }, "/en/lesson/eq-and-filtering": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/eq-and-filtering.json" }, "/en/lesson/set-up-beatport-on-pc-or-mac-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/set-up-beatport-on-pc-or-mac-1.json" }, "/en/lesson/connecting-speakers-and-headphones-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/connecting-speakers-and-headphones-1.json" }, "/en/lesson/set-up-on-mobile-devices-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/set-up-on-mobile-devices-1.json" }, "/en/lesson/key-lock-and-key-matching": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/key-lock-and-key-matching.json" }, "/en/lesson/mash-up": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/mash-up.json" }, "/en/lesson/introduction-to-beatport-dj-app": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/introduction-to-beatport-dj-app.json" }, "/en/lesson/playing-samples": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/playing-samples.json" }, "/en/lesson/dj-transitions": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/dj-transitions.json" }, "/en/lesson/adding-effects": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/adding-effects.json" }, "/en/lesson/using-hot-cues": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/using-hot-cues.json" }, "/en/lesson/scratching": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/scratching.json" }, "/en/lesson/set-up-on-mobile-devices": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/set-up-on-mobile-devices.json" }, "/en/lesson/looping-with-auto-loop-and-manual-loop": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/looping-with-auto-loop-and-manual-loop.json" }, "/en/lesson/set-up-on-pc-or-mac": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/set-up-on-pc-or-mac.json" }, "/en/lesson/basics-of-beat-matching": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/basics-of-beat-matching.json" }, "/en/lesson/1-connecting-speakers-and-headphones": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/1-connecting-speakers-and-headphones.json" }, "/en/lesson/equalizing-and-filtering": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/equalizing-and-filtering.json" }, "/en/lesson/cueing-a-track": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/cueing-a-track.json" }, "/en/lesson/dj-transitions-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/dj-transitions-1.json" }, "/en/lesson/playing-samples-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/playing-samples-1.json" }, "/en/lesson/adding-effects-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/adding-effects-1.json" }, "/en/lesson/beat-matching-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/beat-matching-1.json" }, "/en/lesson/looping-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/looping-1.json" }, "/en/lesson/hot-cues-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/hot-cues-1.json" }, "/en/lesson/playing-tracks-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/playing-tracks-1.json" }, "/en/lesson/cueing-a-track-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/cueing-a-track-1.json" }, "/en/lesson/eq-and-filtering-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/eq-and-filtering-1.json" }, "/en/lesson/playing-tracks": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/playing-tracks.json" }, "/en/lesson/scratching-1": { "initialRevalidateSeconds": false, "srcRoute": "/[[...slug]]", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/en/lesson/scratching-1.json" } }, "dynamicRoutes": { "/[[...slug]]": { "routeRegex": "^(?:/(.+?))?(?:/)?$", "dataRoute": "/_next/data/nVTOBJpUcqSKFF3psma5T/[[...slug]].json", "fallback": null, "dataRouteRegex": "^/_next/data/nVTOBJpUcqSKFF3psma5T(?:/(.+?))?\\.json$" } }, "notFoundRoutes": [], "preview": { "previewModeId": "b698b6d80298b366754b6562237873f3", "previewModeSigningKey": "91f94cdb323b7e7e1f16f8e5ccb7658f7dda898b8ecf8e5475907c310fb5942f", "previewModeEncryptionKey": "df3f8a5dee60f32b01d548a2e24f6e56514d2d0f1c025be081164847be6c3b8a" } } ```
overlordofmu commented 2 years ago

I suspect the behavior here is that the middleware is sending both a stale-while-revalidate and max-age directives in the cache control header. As our CDN doesn't currently support any use of stale-while-revalidate the max-age only is used and is the source of this issue.

In other words, only the max-age directive is being used as that is the defined fallback behavior when stale-while-revalidate is not supported. This means that the CDN will cache the response for whatever the time says in the max-age directive. I've seen max-age values of 31536000 used and in that case the CDN would the cached response for a full year.

Again, this is only my best guess but I expect a developer will be able to confirm or disprove this hypothesis.

ascorbic commented 2 years ago

This isn't quite correct. We strip cache-control headers, so they shouldn't make any difference. The problem is that currently middleware runs at the origin, so if the page uses an ODB (i.e. it uses fallback=false or fallback=blocking, or it uses ISR) then the response with middleware is cached. Subsequent requests get the original version. The only way that you will have the middleware run each time is if the page uses SSR. This is unavoidable until we run middleware at the edge. I need to explain this better, so will open a PR with an update to the docs.

ascorbic commented 2 years ago

We may need to make it serve them from regular handlers rather than ODBs. We already prevent static pages from being moved to the CDN if they match middleware (and warn the user). I think we may need to also prevent them from using ODBs.