NextJS页面URL因语言而异

时间:2020-04-24 14:26:07

标签: reactjs next.js

我正在制作具有不同语言的网站,并且我希望页面网址因语言而异。

例如:www.website.com/anasayfa,www.website.com/home相同页面但网址不同。

我正在使用此代码<Link href="/home" as="/anasayfa">,但是当我刷新页面时发现404错误。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

有可能,但是您需要做两件事

  1. 根据您的建议,可以通过<Link href="/home" as="/anasayfa">
  2. 进行客户端导航
  3. 服务器端,您将需要实现自定义服务器,该服务器将将此/anasayfa映射到正确的页面。
// server.js

const express = require('express');
const next = require('next');

const port = parseInt(process.env.PORT, 10) || 3000;
const dev = process.env.NODE_ENV !== 'production';
const app = next({dev});
const handle = app.getRequestHandler();

app.prepare().then(() => {
  const server = express();

  const pagesMap = {
    '/anasayfa': '/home',
  };

  server.all('*', (req, res) => {
    if (pagesMap.hasOwnProperty(req.pathname)) {
      return app.render(req, res, pagesMap[req.pathname], req.query);
    }

    return handle(req, res);
  });

  server.listen(port, (err) => {
    if (err) throw err;
    console.log(`> Ready on http://localhost:${port}`);
  });
});

我的实现是超级简单,但是认为您可以发出数据库请求并从它或任何其他复杂的解决方案中加载此映射

此代码段基于custom-server-express