diff --git a/packages/next-server/server/next-server.ts b/packages/next-server/server/next-server.ts index 2b3401b2c3d73568e451be2d235b578f8124c13f..733ff6f55efa5a5d7610a519bb47bf45bd94f1ea 100644 --- a/packages/next-server/server/next-server.ts +++ b/packages/next-server/server/next-server.ts @@ -13,6 +13,7 @@ import { PAGES_MANIFEST, PHASE_PRODUCTION_SERVER, SERVER_DIRECTORY, + SERVERLESS_DIRECTORY, } from '../lib/constants' import { getRouteMatcher, @@ -322,7 +323,12 @@ export default class Server { private generatePublicRoutes(): Route[] { const routes: Route[] = [] const publicFiles = recursiveReadDirSync(this.publicDir) - const serverBuildPath = join(this.distDir, SERVER_DIRECTORY) + const serverBuildPath = join( + this.distDir, + this.nextConfig.target === 'serverless' + ? SERVERLESS_DIRECTORY + : SERVER_DIRECTORY + ) const pagesManifest = require(join(serverBuildPath, PAGES_MANIFEST)) publicFiles.forEach(path => { diff --git a/test/integration/serverless/public/hello.txt b/test/integration/serverless/public/hello.txt new file mode 100644 index 0000000000000000000000000000000000000000..3b18e512dba79e4c8300dd08aeb37f8e728b8dad --- /dev/null +++ b/test/integration/serverless/public/hello.txt @@ -0,0 +1 @@ +hello world diff --git a/test/integration/serverless/test/index.test.js b/test/integration/serverless/test/index.test.js index 25bf07784496f4e01ae744e433eeb23faa5808d9..9791db0348e93b874a69a9f51c7bd7b09f0cdc53 100644 --- a/test/integration/serverless/test/index.test.js +++ b/test/integration/serverless/test/index.test.js @@ -31,6 +31,11 @@ describe('Serverless', () => { expect(html).toMatch(/Hello World/) }) + it('should serve file from public folder', async () => { + const content = await renderViaHTTP(appPort, '/hello.txt') + expect(content.trim()).toBe('hello world') + }) + it('should render the page with dynamic import', async () => { const html = await renderViaHTTP(appPort, '/dynamic') expect(html).toMatch(/Hello!/)