Javascript 带有自定义服务器的next.js应用程序未正确呈现
我是next.js的新手,所以可能我错过了一些非常愚蠢的东西。我想使用自定义路由,因此我创建了一个Javascript 带有自定义服务器的next.js应用程序未正确呈现,javascript,express,next.js,Javascript,Express,Next.js,我是next.js的新手,所以可能我错过了一些非常愚蠢的东西。我想使用自定义路由,因此我创建了一个server.js文件,并将我的package.json命令更改为node server.js。这是整个server.js文件: const express = require("express"); const next = require("next"); const createLocaleMiddleware = require("express-locale"); const dev =
server.js
文件,并将我的package.json命令更改为node server.js
。这是整个server.js文件:
const express = require("express");
const next = require("next");
const createLocaleMiddleware = require("express-locale");
const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
const handle = app.getRequestHandler();
app
.prepare()
.then(() => {
const server = express();
server.get("/", createLocaleMiddleware(), (req, res) => {
res.redirect(`/${req.locale.language}/home`);
});
server.get("/:lang/home", (req, res) => {
const actualPage = "/";
const queryParams = { locale: req.params.lang };
app.render(req, res, actualPage, queryParams);
});
server.listen(3000, err => {
if (err) throw err;
console.log("> Ready on http://localhost:3000");
});
})
.catch(ex => {
console.error(ex.stack);
process.exit(1);
});
我相信,根据文件,这应该是可行的。我只想在指定的路由('/:lang/home')上呈现带有用户区域设置的索引页。我用的是i18n
现在,我在控制台(客户端)中遇到以下错误:
它是荷兰语的,但它只是说它找不到任何指定的文件。所以现在HMR不再工作了,路由也不再工作了(使用Router.push)。它唯一正确的操作是加载索引页(我可以在浏览器中看到它)
我还尝试从文档中启用和禁用此标志:
module.exports = {
useFileSystemPublicRoutes: false
}
遗憾的是,没有效果
我错过什么了吗?是因为我在重定向吗?或者这不是处理路由的方法?如果有人能提供一些建议,那就太好了:)
提前谢谢 您缺少服务器。
get('*',handle)
,如中所示。这是绝对必要的:)