我正在尝试将我的应用部署到本地计算机以模拟部署过程。你称之为临时模式或其他什么。我使用的工具包括pm2和Nginx。
当我在项目中直接使用pm2 start server.js
运行我的应用时,我可以使用我的网络应用。客户端可以通过Nginx服务器访问index.html
文件。但我认为这不是生产模式,除非我也使用--env production
。
所以我将所有必需的文件复制到我项目的dist
目录,配置Nginx以提供静态内容,在我的源代码中,我想使用
app.get('/', function(req, res) {
res.sendFile('index.html', {root: somePath});
});
允许客户端访问快速服务器上的index.html
文件。但我不确定在somePath
放什么?当我将项目部署到服务器时,我将服务器端和客户端分开。例如,我的服务器端位于/usr/path/server
,但我的客户端位于/etc/shared/html
。如果我搞砸了路径,我会得到一个禁止的#34;来自的错误消息
当我访问index.html
时表达。
答案 0 :(得分:0)
如果您希望在开发过程中实现类似生产的可重复性,那么您应该使用相同的工具实现相同的功能。
现在docker compose是解决此问题的最佳解决方案。首先你应该有两个容器,第一个用nginx,第二个用pm2。您还应该将静态文件的卷绑定/挂载到nginx。
答案 1 :(得分:0)
您的代码应该是这样的。
var path = require('path');
var virtualDirPath = process.env.virtualDirPath || '';
var appDir = path.dirname(require.main.filename) + virtualDirPath;
appDir将提供环境目录,您可以从中访问html
文件。
希望有所帮助:)