首页 > 解决方案 > 直接导航到内部 url 时反应 NextJS 502 BAD_GATEWAY

问题描述

我有一个反应应用程序,使用 NextJS 我有很多链接到我的网页内部,一切都很好

但是当我试图导航到网站而不是主页时,我收到消息“502 BAD_GATEWAY”

例如:导航此链接: https ://power-tools.co.il/ 然后单击右侧第一个工具,您将成功导航到: https ://power-tools.co.il/rentals/generators

但如果您尝试直接导航到相同的网址: https ://power-tools.co.il/rentals/generators

你会得到错误:“502 BAD_GATEWAY”

为什么会这样以及如何解决?

这是生产运行时错误的日志:

info  - Loaded env from .env.production
2020-07-06T07:20:37.771Z    undefined   ERROR   Uncaught Exception  {"errorType":"Error","errorMessage":"Must use import to load ES Module: /var/task/node_modules/flatted/cjs/index.js\nrequire() of ES modules is not supported.\nrequire() of /var/task/node_modules/flatted/cjs/index.js from /var/task/.next/serverless/pages/rentals/[categoryID].js is an ES module file as it is a .js file whose nearest parent package.json contains \"type\": \"module\" which defines all .js files in that package scope as ES modules.\nInstead rename index.js to end in .cjs, change the requiring code to use import(), or remove \"type\": \"module\" from /var/task/node_modules/flatted/package.json.\n","code":"ERR_REQUIRE_ESM","stack":["Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /var/task/node_modules/flatted/cjs/index.js","require() of ES modules is not supported.","require() of /var/task/node_modules/flatted/cjs/index.js from /var/task/.next/serverless/pages/rentals/[categoryID].js is an ES module file as it is a .js file whose nearest parent package.json contains \"type\": \"module\" which defines all .js files in that package scope as ES modules.","Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove \"type\": \"module\" from /var/task/node_modules/flatted/package.json.","","    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1149:13)","    at Module.load (internal/modules/cjs/loader.js:977:32)","    at Function.Module._load (internal/modules/cjs/loader.js:877:14)","    at Module.require (internal/modules/cjs/loader.js:1019:19)","    at require (internal/modules/cjs/helpers.js:77:18)","    at Object.U3Ae (/var/task/.next/serverless/pages/rentals/[categoryID].js:1964:18)","    at __webpack_require__ (/var/task/.next/serverless/pages/rentals/[categoryID].js:23:31)","    at Object.C8l3 (/var/task/.next/serverless/pages/rentals/[categoryID].js:1306:25)","    at __webpack_require__ (/var/task/.next/serverless/pages/rentals/[categoryID].js:23:31)","    at Module.wN1p (/var/task/.next/serverless/pages/rentals/[categoryID].js:4487:30)"]}
Unknown application error occurred
Error

标签: javascriptreactjsnext.jsvercel

解决方案


由于这是 React,我怀疑 Web 服务器没有正确处理您的应用程序的路由。

作为一种可能的解决方案,您能否确保"homepage"在您package.json的网站中定义了 URL 的值:

"homepage": "https://power-tools.co.il/",

并尝试再次部署它?


推荐阅读