Следующая js с проблемой express 404 в производственном режиме - PullRequest
0 голосов
/ 14 марта 2020

Я создал проект 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>

1 Ответ

0 голосов
/ 16 марта 2020

npm run build и npm run start

...