Я слежу за онлайн-руководством, которое использует next-маршруты для определения пользовательских подстановочных маршрутов, но я не могу заставить его работать.
Мой файл server.js:
const { createServer } = require("http");
const next = require("next");
const app = next({
dev: process.env.NODE_ENV !== "production"
});
const routes = require("./routes");
const handler = routes.getRequestHandler(app);
app.prepare().then(() => {
createServer(handler).listen(3000, e => {
if(e) throw e;
console.log("Ready on localhost:3000");
})
})
Мой файл rout.js:
const routes = require("next-routes")();
routes.add("/campaigns/:address(0x[0-9a-fA-F]+)", "campaigns/show");
module.exports = routes;
Мои кампании / show.js
import React from "react";
class CampaignShow extends React.Component {
static getInitialProps(props) {
return {}
}
render() {
return (
<h3>Campaign Show</h3>
)
}
}
export default CampaignShow
Когда я перемещаюсь из приложения в http://localhost:3000/campaigns/0x78E6Fdf23DBA11016c658cc93C4bBb4F63bDAf25, все работает нормально, и я вижустраницу, которую я ожидаю увидеть
Однако, если я попытаюсь открыть эту ссылку напрямую, рендеринг на стороне сервера не будет работать и отобразит страницу с ошибкой 404.Пока консоль выдает не очень полезную ошибку:
Page does not exist: /campaigns/0x78E6Fdf23DBA11016c658cc93C4bBb4F63bDAf25
Error: Page does not exist: /campaigns/0x78E6Fdf23DBA11016c658cc93C4bBb4F63bDAf25
at http://localhost:3000/_next/1543962700127/page/campaigns/0x78E6Fdf23DBA11016c658cc93C4bBb4F63bDAf25:3:21
at register (http://localhost:3000/_next/1543962700127/main.js:20505:24)
at PageLoader.registerPage (http://localhost:3000/_next/1543962700127/main.js:20530:9)
at http://localhost:3000/_next/1543962700127/main.js:18414:14
at Array.forEach (<anonymous>)
at Object.<anonymous> (http://localhost:3000/_next/1543962700127/main.js:18410:30)
at __webpack_require__ (http://localhost:3000/_next/1543962700127/manifest.js:714:31)
at fn (http://localhost:3000/_next/1543962700127/manifest.js:117:20)
at Object.<anonymous> (http://localhost:3000/_next/1543962700127/main.js:13708:9)
at __webpack_require__ (http://localhost:3000/_next/1543962700127/manifest.js:714:31)
GET http://localhost:3000/campaigns/0x78E6Fdf23DBA11016c658cc93C4bBb4F63bDAf25 404 (Not Found)
Что я делаю не так?