我正在使用multer上传上传和保存图像在客户端/图像/后文件夹。
下面是一个代码片段:
const storage = multer.diskStorage({
destination: './client/images/post',
filename: function(req, file, cb){
cb(null,file.fieldname + '-' + Date.now() + path.extname(file.originalname));
}
});
这在开发中非常有效,但是,当我将这个节点应用部署到Heroku时,Heroku找不到在生产过程中新上传的图像。
我得到这个错误:
https://mywebsite/images/post/photo-1673474603560.png 404 (Not Found)
然而,如果我查看部署时已经存在的其他图像标记的源代码-它们能够进入文件夹并加载它们的图像。
有什么想法吗?
1条答案
按热度按时间im9ewurl1#
我相信Heroku使用的是临时文件系统。请参阅https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem
因此,在Heroku Dyno上创建的任何文件都不是永久性的。如果您想要适当的永久性文件存储,您很可能必须使用其他存储解决方案。虽然您当前的设置可能适用于本地开发,但您必须在已部署的环境中使用类似S3的东西。