我在Heroku上主持我的小项目。
我的问题是,当我写一个HTML文件的代码时,例如
fs.writeFile('home.html', <html><body>Hello</body><html>, function (err) {
if (err) return console.log(err);
});
它写入文件,一切正常,但它没有更新。所以如果我在更新后进入页面,我会看到旧版本。我已经离线测试了它,它运行正常。
它没有从缓存中获取页面。我已经把
了<meta http-equiv="expires" content="0">
在HTML文件中,它没有帮助。
答案 0 :(得分:1)
Heroku's filesystem is ephemeral:
每个dyno都有自己的短暂文件系统,并带有最近部署代码的全新副本。在dyno的生命周期中,其运行进程可以将文件系统用作临时暂存器,但是任何其他dyno中的进程都不会看到所写的文件,并且在dyno停止或重新启动时,所写的任何文件都将被丢弃。例如,每次因应用程序部署而更换dyno时都会发生这种情况,并且大约每天一次作为正常dyno管理的一部分。
您可以写信给它,但是当您的dyno重新启动时,任何更改都会丢失,这种情况经常发生。
根据您的使用情况,您应该使用data store(默认情况下为Heroku provides a PostgreSQL database,但还有其他选项)或a third-party file storage service like Amazon S3。