当我使用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'))
})

运行Node应用程序确实会显示index.htm个文件的内容,但点击其中的任何链接都会重定向到index.html页面,即使显示的URL发生了变化.

求求你,救命!

推荐答案

要将其用作Reaction应用程序,您需要使用Static HTML Export,这将通过运行next build && next export生成一个类似Reaction的构建文件夹.这样做是可行的,但您不会获得所有的Next.js特性,例如:Image OptimizationInternationalized RoutingAPI RoutesHeadersMiddlewaregetServerSideProps.

这是因为Next.js被设计为Node.js/Reaction"Full Stack"框架.因此,推荐的方式是将其用作包含npm run build && next start的独立应用程序.

Javascript相关问答推荐

React Native平面列表自动滚动

Spring boot JSON解析错误:意外字符错误

Google maps API通过API返回ZERO_RESULTS,以获得方向请求,但适用于Google maps

构造HTML表单以使用表单数据创建对象数组

在react JS中映射数组对象的嵌套数据

使用JQuery单击元素从新弹出窗口获取值

未定义引用错误:未定义&Quot;而不是&Quot;ReferenceError:在初始化&Quot;之前无法访问';a';

用JS从平面文件构建树形 struct 的JSON

Eval vs函数()返回语义

如何使用TypeScrip设置唯一属性?

SPAN不会在点击时关闭模式,尽管它们可以发送日志(log)等

使用类型:assets资源 /资源&时,webpack的配置对象&无效

如何使用抽屉屏幕及其子屏幕/组件的上下文?

如何在FiRestore中的事务中使用getCountFromServer

为什么NULL不能在构造函数的.Prototype中工作

在传单的图像覆盖中重新着色特定 colored颜色 的所有像素

KeyboardEvent:检测到键具有打印的表示形式

REACT-本机错误:错误类型错误:无法读取未定义的容器的属性

打字脚本中的函数包装键入

如何根据获取的对象数量动态生成状态变量