Я создал проект Next. js с express. Я определил некоторые маршруты с параметрами на сервере. js, и он работает в разработке правильно, но после того, как я экспортировал проект, в производственном режиме, когда я обновляю sh страница в этом маршруте. Я получаю сообщение об ошибке 404 страница не найдена из браузера. для производства я выполняю следующие команды 1. npm запустить сборку 2. npm запустить экспорт
Ниже вы можете увидеть мои файлы;
сервер. js
const express = require('express');
const next = require('next');
const port = process.env.PORT || 3001;
const dev=process.env.NODE_ENV !=='production';
const app = next({dev});
const handle = app.getRequestHandler();
app.prepare()
.then(()=>{
const server=express();
server.get('/', (req, res) => {
return app.render(req, res, '/index')
});
server.get('/tour/:num/:name', (req, res) => {
return app.render(req, res, '/tour', { name: req.params.name,num: req.params.num })
});
server.get('*',(req,res)=>{
return handle (req,res);
});
server.listen(port,(err)=>{
if(err) throw err;
console.log(`READY ON http://localhost:${port}`);
})
});
скриптов в пакете. json
"scripts": {
"dev": "node server.js",
"build": "next build",
"export": "next export",
"start": "node server.js"
}
module.export в next.config. js
module.exports = withPlugins([[withCSS],[withSass],[withFonts],[withImages]],{ hmr: false },
{
exportPathMap: function() {
return {
'/': { page: '/' },
'/tour': { page: '/tour/:num/:name' }
};
}
}
);
Ссылка от следующей / ссылка
<Link href={{ pathname: "/tour", query: { name:tourName , num:pkgNum} }} as={`tour/${pkgNum}/${tourName}`}>
<a >
Tour Details
</a>
</Link>