Я работаю над проектом с next.js и Reactjs, который использует много разных языков.Поэтому мне нужно изменить язык URL.Пример:
www.example.com / es / entradas
www.example.com / en / tickets
www.example.com / de / eintrittskarten
Для создания маршрутов я увидел, что есть модуль, который мне помогает: next-маршруты
https://github.com/fridays/next-routes
Естьмного URL, и я работаю с CMS, так что мои клиенты смогут добавлять больше, поэтому маршруты не могут быть определены.Я подумал передать URL с запросами, например так:
const routes = require('next-routes');
module.exports = routes()
.add('index', '/:lang?')
.add('tickets', '/:lang?/:ticket')
.add('hotel', '/:lang?/:hotel');
К моему удивлению (как вы могли заметить), он не работает, потому что маршруты не видят разницы между этими двумя последними маршрутами.Если я напишу:
www.example.com / ru / tickets
Это будет правильно перейти на мою страницу "Билеты", но если я напишу
www.example.com / ru / hotel
Он снова перейдет на мою страницу "Билеты", а не в "отель"
Знаете ли вы оКак я могу это сделать?
В моем проекте у меня есть следующие файлы, связанные с маршрутами:
server.js
const next = require('next');
const { createServer } = require('http');
const routes = require('./routes');
const dev = process.env.NODE_ENV !== 'production';
const app = next({ dir: './src/shared', dev });
const handle = routes.getRequestHandler(app);
app.prepare()
.then(() => {
createServer(handle)
.listen(3001, (err) => {
if (err) throw err;
console.log("> Ready on http://localhost:3001");
});
});
rout.js
const routes = require('next-routes');
module.exports = routes()
.add('index', '/:lang?')
.add('tickets', '/:lang?/:ticket')
.add('hotel', '/:lang?/:hotel');