【发布时间】:2020-06-02 11:56:12
【问题描述】:
我有一个关于构建应用程序的问题。我正在使用支持 node.js 的简单 VPS。现在我不知道如何将我的 next.js 应用程序构建到生产环境中。
我想将我的应用程序部署为静态文件。
我认为我应该使用next build && next export 然后将 dir 复制到服务器,但在此过程中,我遇到了一些问题 - 当我更改路由时 - 一切正常,但如果我刷新页面 - 找不到页面因为服务器正在目录中寻找这个文件。那么如何在生产模式下使用 VPS 服务器和静态文件部署我的 nextjs 应用程序呢?
我尝试了一件可能无法正常工作的事情,或者我做错了什么。 我添加了 nodejs express 服务器与
const express = require('express');
const next = require('next');
const dev = process.env.NODE_ENV !== 'production';
const app = next({dev});
const router = express.Router();
const handle = app.getRequestHandler();
app.prepare()
.then(() => {
const server = express();
server.get('*', (req, res) => {
return handle(req, res);
});
server.listen(3000, (err) => {
if (err) throw err;
console.log('> Ready on http://localhost:3000');
});
});
并使用永久库NODE_ENV=production node server.js 启动服务器,它工作正常,但似乎这是以错误的方式工作 - 似乎它是像开发模式一样的普通服务器 - 所以不应该那样。 (我在右下角看到了雷声图标,并且我看到了所有与开发模式相同的文件)。
我想将所有内容部署为静态文件。
感谢您的帮助!
【问题讨论】:
标签: node.js reactjs linux deployment next.js