Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有custom express server的Next.js将重新呈现所有自定义路由_Javascript_Reactjs_Express_Next.js - Fatal编程技术网

Javascript 带有custom express server的Next.js将重新呈现所有自定义路由

Javascript 带有custom express server的Next.js将重新呈现所有自定义路由,javascript,reactjs,express,next.js,Javascript,Reactjs,Express,Next.js,我已经在server.js中设置了一个自定义的express服务器,就像docs for Next.js一样,但是,每次我导航到在那里定义的任何动态路由时,都会重新呈现该应用程序,包括包含我的样式的应用程序,这会导致未设置样式的内容非常糟糕。有没有办法确保动态路由不会触发重新渲染 这是我的server.js文件: const express=require(“express”); const next=要求(“下一步”); const dev=process.env.NODE_env!==“生

我已经在server.js中设置了一个自定义的express服务器,就像docs for Next.js一样,但是,每次我导航到在那里定义的任何动态路由时,都会重新呈现该应用程序,包括包含我的样式的应用程序,这会导致未设置样式的内容非常糟糕。有没有办法确保动态路由不会触发重新渲染

这是我的server.js文件:

const express=require(“express”);
const next=要求(“下一步”);
const dev=process.env.NODE_env!==“生产”;
const app=next({dev});
const handle=app.getRequestHandler();
应用程序
.准备
.然后(()=>{
const server=express();
server.get(“/press/:slug”,(req,res)=>{
const actualPage=“/press”;
const queryParams={slug:req.params.slug,apiRoute:“press”};
返回app.render(请求、恢复、实际页面、查询参数);
});
server.get(“/locations/:slug”,(req,res)=>{
const actualPage=“/locations/location”;
const queryParams={slug:req.params.slug,apiRoute:“location”};
返回app.render(请求、恢复、实际页面、查询参数);
});
server.get(“/insights/:slug”,(req,res)=>{
const actualPage=“/insights/insight”;
const queryParams={slug:req.params.slug,apiRoute:“insight”};
返回app.render(请求、恢复、实际页面、查询参数);
});
//server.get(“/\u preview/:id/:wpnoce)”,(req,res)=>{
//const actualPage=“/preview”;
//const queryParams={id:req.params.id,wpnoce:req.params.wpnoce};
//应用程序呈现(请求、恢复、实际页面、查询参数);
// });
const robotsOptions={
根目录:_dirname+'/static/',,
标题:{
“内容类型”:“文本/普通;字符集=UTF-8”,
}
};
server.get('/robots.txt',(req,res)=>(
res.status(200).sendFile('robots.txt',robotsOptions)
));
常量sitemapOptions={
根目录:_dirname+'/static/',,
标题:{
“内容类型”:“text/xml;charset=UTF-8”,
}
};
server.get('/sitemap.xml',(req,res)=>(
res.status(200).sendFile('sitemap.xml',sitemappoptions)
));
server.get(“*”,(req,res)=>{
返回句柄(req、res);
});
监听(3000,错误=>{
如果(错误)抛出错误;
console.log(“>已准备就绪http://localhost:3000");
});
})
.catch(ex=>{
控制台错误(例如堆栈);
过程。退出(1);

});您的href应该是as属性。根据文档重建href属性 看看nextjs文档

您使用的是下一个路由器链路还是正常链路?任何标准链接都将强制重新加载,而下一个路由器链接将在客户端上解析。请使用下一个提供的组件。您能举例说明如何使用链接吗?我已经多次看到这个问题是由于链接使用不当造成的。阅读更多