在Heroku上部署Nodejs时无法提供静态文件。

4

我正在尝试完成两件事情,但是不成功。静态文件找不到。

以下代码无法正常工作:

process.env.PWD = process.cwd()
app.set('views', path.join(process.env.PWD, 'public'));

以下代码无法运行:

enter code hereapp.set('views', path.join(__dirname, 'public'));

这段代码是在设置应用程序的视图文件路径。未知原因导致它无法正常工作。
2个回答

8

由于某些原因,Heroku不支持__dirname,请尝试以下方法:

process.env.PWD = process.cwd();

app.set('views', path.join(process.env.PWD, 'public'));

app.use(express.static(path.join(process.env.PWD, 'public')));

这是我遇到这个问题时的解决方法。

-1
这是因为,视图是表达部分,应该在 "views" 文件夹中,像这样:
app.set('views', path.join(__dirname, 'views'));
对于静态文件(HTML、CSS、JS),它们应该在 public 文件夹中,所以要从 public 文件夹中提供文件,您需要:
app.use(express.static(path.join(__dirname, 'public')));
谢谢。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接