Image not loaded

This is my first project with nextJS13 v. 13.2.4;
I have only a few images, which I want to provide via the ‘/public’ folder
The project works well locally, but the production deployment via netlify breaks the imagelinks.
I have only a few images, which I want to provide via the ‘/public’ folder
The project is on github from where I start the build.

I get an error 400
//lustrous-halva-d04a67.netlify.app/_next/image?url=%2FP2535132-1.webp&w=3840&q=80 400

when I try the above-Link directly I get “The requested resource isn’t a valid image”.

The build-log shows that redirects are made. The images are somehow included.
{
11:31:26 AM: from: ‘/P2535132-1.webp’,
11:31:26 AM: to: ‘/P2535132-1.webp’,
11:31:26 AM: conditions: { Cookie: [Array] },
11:31:26 AM: status: 200
11:31:26 AM: },

I don’t see any build errors.

Hi @MartinBrueckenwirt,

Could you share your repo so we can see the setup?

I have just started this project, I am not experienced so beginner’s errors are possible.
Error occurs on the starting page

thx-martin

This looks like a bug on our end to me. For some reason, all the files from your /public folder are throwing a 404 error. Thus, the images are failing to load.

I’ll file this for the devs to check.

Oh wait. This is happening because of your middleware:

It’s redirecting all files from /public to /en/public (based on my language settings), and thus, it’s failing. Are you sure you need it for all the paths?

No this should only be for Next- Transliteration- for the Pages. How could I fix this?

Sorry IPhone autocorrection… I meant next-translate for multi - language Support.

I’m not familiar with the next-translate-plugin and its requirements. Next.js has built-in i18n support: Advanced Features: Internationalized Routing | Next.js, any reason why you’re not using that?

To complicated, I m nee to React/ NextJS.

I’m sorry, we cannot provide support for integrating third-party libraries that might be causing issues. Netlify supports the built-in i18n provided by Next.js. We haven’t tested for other libraries or tools and cannot support every library out there.

I unterstand that, but why is it working locally but breaks after deployment? The middleware is also active locally.

Can you attach your most recent failed deploy/build log

The build doesn’t show an error message (as far as I understand it).
Locally it shows images but not after deployment.

2:21:46 PM: Build ready to start 2:21:48 PM: build-image version: 68a2c262fa3c95a08a1716b8dde8fba0e332ec73 (focal) 2:21:48 PM: buildbot version: 68a2c262fa3c95a08a1716b8dde8fba0e332ec73 2:21:49 PM: Fetching cached dependencies 2:21:49 PM: Starting to download cache of 468.1MB 2:21:52 PM: Finished downloading cache in 3.206s 2:21:52 PM: Starting to extract cache 2:21:53 PM: Finished extracting cache in 1.704s 2:21:54 PM: Finished fetching cache in 5.014s 2:21:54 PM: Starting to prepare the repo for build 2:21:54 PM: Preparing Git Reference refs/heads/main 2:21:55 PM: Parsing package.json dependencies 2:21:56 PM: Different build command detected, going to use the one specified in the Netlify configuration file: ‘npm run prod’ versus ‘npm run build’ in the Netlify UI 2:21:56 PM: Starting to install dependencies 2:21:56 PM: Python version set to 3.8 2:21:56 PM: Attempting Ruby version 2.7.2, read from environment 2:21:57 PM: Using Ruby version 2.7.2 2:21:57 PM: Started restoring cached go cache 2:21:57 PM: Finished restoring cached go cache 2:21:57 PM: Installing Go version 1.19.5 (requested 1.19.5) 2:22:02 PM: go version go1.19.5 linux/amd64 2:22:02 PM: Using PHP version 8.0 2:22:03 PM: Started restoring cached Node.js version 2:22:04 PM: Finished restoring cached Node.js version 2:22:04 PM: v16.20.0 is already installed. 2:22:04 PM: Now using node v16.20.0 (npm v8.19.4) 2:22:04 PM: Enabling Node.js Corepack 2:22:04 PM: Started restoring cached build plugins 2:22:04 PM: Finished restoring cached build plugins 2:22:04 PM: Started restoring cached corepack dependencies 2:22:04 PM: Finished restoring cached corepack dependencies 2:22:04 PM: No npm workspaces detected 2:22:04 PM: Started restoring cached node modules 2:22:04 PM: Finished restoring cached node modules 2:22:04 PM: Installing npm packages using npm version 8.19.4 2:22:05 PM: up to date, audited 428 packages in 614ms 2:22:05 PM: 126 packages are looking for funding 2:22:05 PM: run npm fund for details 2:22:05 PM: found 0 vulnerabilities 2:22:05 PM: npm packages installed 2:22:05 PM: Install dependencies script success 2:22:05 PM: Starting build script 2:22:06 PM: Detected 1 framework(s) 2:22:06 PM: “next” at version “13.2.4” 2:22:06 PM: Section completed: initializing 2:22:08 PM: 2:22:08 PM: Netlify Build 2:22:08 PM: ──────────────────────────────────────────────────────────────── 2:22:08 PM: 2:22:08 PM: ❯ Version 2:22:08 PM: @netlify/build 29.9.2 2:22:08 PM: 2:22:08 PM: ❯ Flags 2:22:08 PM: baseRelDir: true 2:22:08 PM: buildId: 644522daf927f70008f5a2da 2:22:08 PM: deployId: 644522daf927f70008f5a2dc 2:22:08 PM: 2:22:08 PM: ❯ Current directory 2:22:08 PM: /opt/build/repo 2:22:08 PM: 2:22:08 PM: ❯ Config file 2:22:08 PM: /opt/build/repo/netlify.toml 2:22:08 PM: 2:22:08 PM: ❯ Context 2:22:08 PM: production 2:22:08 PM: 2:22:08 PM: ❯ Using Next.js Runtime - v4.35.0 2:22:09 PM: 2:22:09 PM: 1. @netlify/plugin-nextjs (onPreBuild event) 2:22:09 PM: ──────────────────────────────────────────────────────────────── 2:22:09 PM: 2:22:09 PM: Next.js cache restored. 2:22:09 PM: Netlify configuration property “build.environment.NEXT_PRIVATE_TARGET” value changed. 2:22:09 PM: 2:22:09 PM: (@netlify/plugin-nextjs onPreBuild completed in 61ms) 2:22:09 PM: 2:22:09 PM: 2. build.command from netlify.toml 2:22:09 PM: ──────────────────────────────────────────────────────────────── 2:22:09 PM: 2:22:09 PM: $ npm run prod 2:22:09 PM: > homepage@0.1.0 prod 2:22:09 PM: > npm run build 2:22:09 PM: > homepage@0.1.0 build 2:22:09 PM: > next build 2:22:10 PM: warn - You have enabled experimental feature (appDir) in next.config.js. 2:22:10 PM: warn - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk. 2:22:10 PM: info - Thank you for testing appDir please leave your feedback at https://nextjs.link/app-feedback 2:22:10 PM: info - Creating an optimized production build… 2:22:16 PM: warn - Compiled with warnings 2:22:16 PM: ./node_modules/next/dist/pages/_app.js 2:22:16 PM: Critical dependency: the request of a dependency is an expression 2:22:16 PM: info - Linting and checking validity of types… 2:22:17 PM: Pages directory cannot be found at /opt/build/repo/pages or /opt/build/repo/src/pages. If using a custom path, please configure with the no-html-link-for-pages rule in your eslint config file. 2:22:17 PM: ./src/components/galleryViewer.jsx 2:22:17 PM: 21:9 Warning: The ‘imageData’ object makes the dependencies of useEffect Hook (at line 66) change on every render. To fix this, wrap the initialization of ‘imageData’ in its own useMemo() Hook. react-hooks/exhaustive-deps 2:22:17 PM: ./src/components/gallery_a.jsx 2:22:17 PM: 51:3 Warning: React Hook useEffect has a missing dependency: ‘gridImages’. Either include it or remove the dependency array. react-hooks/exhaustive-deps 2:22:17 PM: ./src/components/gallery_save_inkl_Mobile.jsx 2:22:17 PM: 82:7 Warning: React Hook useEffect has a missing dependency: ‘updateMobile’. Either include it or remove the dependency array. react-hooks/exhaustive-deps 2:22:17 PM: 91:3 Warning: React Hook useEffect has missing dependencies: ‘gridImages’ and ‘updateMobile’. Either include them or remove the dependency array. react-hooks/exhaustive-deps 2:22:17 PM: ./src/components/head.js 2:22:17 PM: 12:7 Warning: Do not use <head> element. Use <Head /> from next/head instead. See: https://nextjs.org/docs/messages/no-head-element @next/next/no-head-element 2:22:17 PM: ./src/components/modal.jsx 2:22:17 PM: 33:40 Warning: Assignments to the ‘mydata’ variable from inside React Hook useEffect will be lost after each render. To preserve the value over time, store it in a useRef Hook and keep the mutable value in the ‘.current’ property. Otherwise, you can move this variable directly inside useEffect. react-hooks/exhaustive-deps 2:22:17 PM: info - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules 2:22:18 PM: info - Collecting page data… 2:22:19 PM: info - Generating static pages (0/8) 2:22:19 PM: info - Generating static pages (2/8) 2:22:19 PM: info - Generating static pages (4/8) 2:22:19 PM: info - Generating static pages (6/8) 2:22:19 PM: info - Generating static pages (8/8) 2:22:20 PM: info - Finalizing page optimization… 2:22:20 PM: Route (app) Size First Load JS 2:22:20 PM: ┌ λ / 171 B 73.5 kB 2:22:20 PM: ├ λ /apartments/gartenblick 937 B 77.3 kB 2:22:20 PM: ├ λ /apartments/studio 3.33 kB 76.7 kB 2:22:20 PM: ├ λ /apartments/superior 137 B 68.7 kB 2:22:20 PM: └ λ /second-page 735 B 77.1 kB 2:22:20 PM: + First Load JS shared by all 68.6 kB 2:22:20 PM: ├ chunks/237-c4ad336dd16d357d.js 66.2 kB 2:22:20 PM: ├ chunks/main-app-2123b022cf05091f.js 205 B 2:22:20 PM: └ chunks/webpack-833f361c5fbe2b21.js 2.18 kB 2:22:20 PM: Route (pages) Size First Load JS 2:22:20 PM: ─ ○ /404 179 B 89.8 kB 2:22:20 PM: + First Load JS shared by all 89.6 kB 2:22:20 PM: ├ chunks/main-762e02a2b20adfa3.js 87.3 kB 2:22:20 PM: ├ chunks/pages/_app-969c5d9f39a1a92b.js 190 B 2:22:20 PM: └ chunks/webpack-833f361c5fbe2b21.js 2.18 kB 2:22:20 PM: ƒ Middleware 27.2 kB 2:22:20 PM: λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps) 2:22:20 PM: ○ (Static) automatically rendered as static HTML (uses no initial props) 2:22:20 PM: 2:22:20 PM: (build.command completed in 10.6s) 2:22:20 PM: 2:22:20 PM: 3. @netlify/plugin-nextjs (onBuild event) 2:22:20 PM: ──────────────────────────────────────────────────────────────── 2:22:20 PM: 2:22:20 PM: Patching /opt/build/repo/node_modules/next/dist/server/base-server.js 2:22:20 PM: Done 2:22:20 PM: Patching /opt/build/repo/node_modules/next/dist/server/next-server.js 2:22:20 PM: Done 2:22:20 PM: Moving static page files to serve from CDN… 2:22:20 PM: Moved 0 files 2:22:20 PM: You are not using Netlify Edge Functions for image format detection. Set env var “NEXT_FORCE_EDGE_IMAGES=true” to enable. 2:22:20 PM: :sparkles: Deploying middleware and functions to Netlify Edge Functions :sparkles: 2:22:20 PM: This feature is in beta. Please share your feedback here: https://ntl.fyi/next-netlify-edge 2:22:20 PM: Netlify configuration property “redirects” value changed to [ 2:22:20 PM: { from: ‘/_next/static/', to: ‘/static/:splat’, status: 200 }, 2:22:20 PM: { 2:22:20 PM: from: '/:locale/_next/static/’, 2:22:20 PM: to: ‘/static/:splat’, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/next/image*', 2:22:20 PM: query: { url: ‘:url’, w: ‘:width’, q: ‘:quality’ }, 2:22:20 PM: to: '/ipx/w:width,q:quality/:url’, 2:22:20 PM: status: 301 2:22:20 PM: }, 2:22:20 PM: { from: ‘/_ipx/', to: ‘/.netlify/builders/_ipx’, status: 200 }, 2:22:20 PM: { from: '/cache/’, to: ‘/404.html’, status: 404, force: true }, 2:22:20 PM: { from: ‘/server/', to: ‘/404.html’, status: 404, force: true }, 2:22:20 PM: { from: '/serverless/’, to: ‘/404.html’, status: 404, force: true }, 2:22:20 PM: { from: ‘/trace’, to: ‘/404.html’, status: 404, force: true }, 2:22:20 PM: { from: ‘/traces’, to: ‘/404.html’, status: 404, force: true }, 2:22:20 PM: { 2:22:20 PM: from: ‘/routes-manifest.json’, 2:22:20 PM: to: ‘/404.html’, 2:22:20 PM: status: 404, 2:22:20 PM: force: true 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/build-manifest.json’, 2:22:20 PM: to: ‘/404.html’, 2:22:20 PM: status: 404, 2:22:20 PM: force: true 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/prerender-manifest.json’, 2:22:20 PM: to: ‘/404.html’, 2:22:20 PM: status: 404, 2:22:20 PM: force: true 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/react-loadable-manifest.json’, 2:22:20 PM: to: ‘/404.html’, 2:22:20 PM: status: 404, 2:22:20 PM: force: true 2:22:20 PM: }, 2:22:20 PM: { from: ‘/BUILD_ID’, to: ‘/404.html’, status: 404, force: true }, 2:22:20 PM: { 2:22:20 PM: from: ‘/’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: true, 2:22:20 PM: conditions: { Cookie: [Array] } 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/’, 2:22:20 PM: to: ‘/de’, 2:22:20 PM: status: 301, 2:22:20 PM: conditions: { Language: [Array] }, 2:22:20 PM: force: true 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/’, 2:22:20 PM: to: ‘/it’, 2:22:20 PM: status: 301, 2:22:20 PM: conditions: { Language: [Array] }, 2:22:20 PM: force: true 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/api/', 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1470817-small.webp’, 2:22:20 PM: to: ‘/P1470817-small.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1470817.JPG’, 2:22:20 PM: to: ‘/P1470817.JPG’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1540068-small.webp’, 2:22:20 PM: to: ‘/P1540068-small.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1540068.JPG’, 2:22:20 PM: to: ‘/P1540068.JPG’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1550975-small.webp’, 2:22:20 PM: to: ‘/P1550975-small.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1550975.JPG’, 2:22:20 PM: to: ‘/P1550975.JPG’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560052-small.webp’, 2:22:20 PM: to: ‘/P1560052-small.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560052.jpg’, 2:22:20 PM: to: ‘/P1560052.jpg’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560057-small.webp’, 2:22:20 PM: to: ‘/P1560057-small.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560057.JPG’, 2:22:20 PM: to: ‘/P1560057.JPG’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560061-small.webp’, 2:22:20 PM: to: ‘/P1560061-small.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560061.JPG’, 2:22:20 PM: to: ‘/P1560061.JPG’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560072-small.webp’, 2:22:20 PM: to: ‘/P1560072-small.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560072.JPG’, 2:22:20 PM: to: ‘/P1560072.JPG’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560079-small2.webp’, 2:22:20 PM: to: ‘/P1560079-small2.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560079.JPG’, 2:22:20 PM: to: ‘/P1560079.JPG’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560082-small2.webp’, 2:22:20 PM: to: ‘/P1560082-small2.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P1560082.JPG’, 2:22:20 PM: to: ‘/P1560082.JPG’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P2535132-1-small2.webp’, 2:22:20 PM: to: ‘/P2535132-1-small2.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P2535132-1.jpg’, 2:22:20 PM: to: ‘/P2535132-1.jpg’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P2535132-1.webp’, 2:22:20 PM: to: ‘/P2535132-1.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P2535145-1-small2.webp’, 2:22:20 PM: to: ‘/P2535145-1-small2.webp’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P2535145-1.jpg’, 2:22:20 PM: to: ‘/P2535145-1.jpg’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/P2535150-HDR-1.jpg’, 2:22:20 PM: to: ‘/P2535150-HDR-1.jpg’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/dbw.svg’, 2:22:20 PM: to: ‘/dbw.svg’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/favicon.ico’, 2:22:20 PM: to: ‘/favicon.ico’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/logo.png’, 2:22:20 PM: to: ‘/logo.png’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/next.svg’, 2:22:20 PM: to: ‘/next.svg’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/thirteen.svg’, 2:22:20 PM: to: ‘/thirteen.svg’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/vercel.svg’, 2:22:20 PM: to: ‘/vercel.svg’, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: status: 200 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: '/’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: conditions: { Cookie: [Array] }, 2:22:20 PM: force: true 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/en.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/de.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/de/’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/it.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/it/’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/en/apartments/gartenblick.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/apartments/gartenblick’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/de/apartments/gartenblick.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/de/apartments/gartenblick’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/it/apartments/gartenblick.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/it/apartments/gartenblick’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/en/apartments/studio.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/apartments/studio’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/de/apartments/studio.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/de/apartments/studio’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/it/apartments/studio.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/it/apartments/studio’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/en/apartments/superior.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/apartments/superior’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/de/apartments/superior.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/de/apartments/superior’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/it/apartments/superior.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/it/apartments/superior’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/en/second-page.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/second-page’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/de/second-page.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/de/second-page’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/_next/data/_lGzEXg39jCba_e25ygPM/it/second-page.json’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/it/second-page’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200, 2:22:20 PM: force: false 2:22:20 PM: }, 2:22:20 PM: { 2:22:20 PM: from: ‘/*’, 2:22:20 PM: to: ‘/.netlify/functions/___netlify-handler’, 2:22:20 PM: status: 200 2:22:20 PM: } 2:22:20 PM: ]. 2:22:20 PM: 2:22:20 PM: (@netlify/plugin-nextjs onBuild completed in 115ms) 2:22:20 PM: 2:22:20 PM: 4. Functions bundling 2:22:20 PM: ──────────────────────────────────────────────────────────────── 2:22:20 PM: 2:22:20 PM: Packaging Functions from .netlify/functions-internal directory: 2:22:20 PM: - ___netlify-handler/___netlify-handler.js 2:22:20 PM: - ___netlify-odb-handler/___netlify-odb-handler.js 2:22:20 PM: - _ipx/_ipx.js 2:22:20 PM: 2:22:46 PM: 2:22:46 PM: (Functions bundling completed in 25.9s) 2:22:46 PM: 2:22:46 PM: 5. Edge Functions bundling 2:22:46 PM: ──────────────────────────────────────────────────────────────── 2:22:46 PM: 2:22:46 PM: Packaging Edge Functions from .netlify/edge-functions directory: 2:22:46 PM: - next_src_middleware 2:22:47 PM: 2:22:47 PM: (Edge Functions bundling completed in 1.1s) 2:22:47 PM: 2:22:47 PM: 6. @netlify/plugin-nextjs (onPostBuild event) 2:22:47 PM: ──────────────────────────────────────────────────────────────── 2:22:47 PM: 2:22:47 PM: Next.js cache saved. 2:22:47 PM: :test_tube: Thank you for testing “appDir” support on Netlify. For known issues and to give feedback, visit https://ntl.fyi/next-13-feedback 2:22:47 PM: 2:22:47 PM: (@netlify/plugin-nextjs onPostBuild completed in 74ms) 2:22:47 PM: 2:22:47 PM: 7. Deploy site 2:22:47 PM: ──────────────────────────────────────────────────────────────── 2:22:47 PM: 2:22:47 PM: Starting to deploy site from ‘.next’ 2:22:47 PM: Calculating files to upload 2:22:47 PM: 27 new files to upload 2:22:47 PM: 3 new functions to upload 2:22:55 PM: Starting post processing 2:22:55 PM: Section completed: deploying 2:22:55 PM: Site deploy was successfully initiated 2:22:55 PM: 2:22:55 PM: (Deploy site completed in 8.1s) 2:22:55 PM: 2:22:55 PM: Netlify Build Complete 2:22:55 PM: ──────────────────────────────────────────────────────────────── 2:22:55 PM: 2:22:55 PM: (Netlify Build completed in 47.5s) 2:22:56 PM: Caching artifacts 2:22:56 PM: Started saving node modules 2:22:56 PM: Finished saving node modules 2:22:56 PM: Started saving build plugins 2:22:56 PM: Finished saving build plugins 2:22:56 PM: Post processing - HTML 2:22:56 PM: Started saving corepack cache 2:22:56 PM: Finished saving corepack cache 2:22:56 PM: Started saving pip cache 2:22:56 PM: Finished saving pip cache 2:22:56 PM: Started saving emacs cask dependencies 2:22:56 PM: Finished saving emacs cask dependencies 2:22:56 PM: Started saving maven dependencies 2:22:56 PM: Finished saving maven dependencies 2:22:56 PM: Started saving boot dependencies 2:22:56 PM: Finished saving boot dependencies 2:22:56 PM: Post processing - header rules 2:22:56 PM: Started saving rust rustup cache 2:22:56 PM: Finished saving rust rustup cache 2:22:56 PM: Started saving go dependencies 2:22:57 PM: Post processing - redirect rules 2:22:56 PM: Finished saving go dependencies 2:22:56 PM: Build script success 2:22:56 PM: Section completed: building 2:22:57 PM: Post processing done 2:22:57 PM: Section completed: postprocessing 2:22:58 PM: Site is live :sparkles: 2:22:58 PM: Uploading Cache of size 468.1MB 2:23:01 PM: Section completed: cleanup 2:23:01 PM: Finished processing build request in 1m12.741s

As I mentioned, we cannot be testing and providing support for every library out there, unfortunately, especially the ones that are replicating a functionality that’s available officially in Next.js.

You can configure your middleware to not redirect for the images, but you would have to figure out how you can achieve that.

Hi, I thx, I will try tomorrow to use the matcher to exclude the Images.