下一个构建版本中的哪个文件我可以用Node静态提供?

lmvvr0a8  于 2022-12-03  发布在  Node.js
关注(0)|答案(1)|浏览(115)

当我使用React时,我所要做的就是运行npm build,将内容复制到Node中一个名为public的文件夹中,然后我添加以下行,它就可以工作了:
node/app.js

app.use(express.static(path.join(__dirname, 'public')));

//...routes

app.use((req, res, next) => {
    res.sendFile(path.resolve(__dirname, 'public', 'index.html'))
})

一切正常,所有链接的内容都显示出来了,这很好。
但是,在NextJS中运行npm run build会在.../server/pages中生成index.html文件。
所以我这样做:

app.use(express.static(path.join(__dirname, 'public')));

//... routes

app.use((req, res, next) => {
    res.sendFile(path.resolve(__dirname, 'public', 'server', 'pages', 'index.html'))
})

运行节点应用程序确实会显示index.htm文件内容,但单击其中的任何链接都将重定向到index.html页面,即使显示的url发生了变化。
救命啊!

uxh89sit

uxh89sit1#

要将其用作React应用程序,您需要使用Static HTML Export,它将通过运行next build && next export生成一个类似React的构建文件夹。一个月一个月一个月一个月,一个月一个月二个月一个月,一个月三个月一个月,一个月四个月,一个月五个月,一个月六个月。
这是因为Next.js被设计成一个Node.js/React“全栈”框架,因此推荐的方法是将其作为一个独立的应用程序与npm run build && next start一起使用。

相关问题