有没有人遇到像我这样的问题?
我已将TiddlyWiki5部署到heroku作为https://jameswiki.herokuapp.com的应用程序。它在运行时按预期显示和工作。但是,在服务器(web dyno)睡眠和唤醒(通常在1小时不活动后)之后,一切都很清楚。
我在创建新的Tiddle时检查了heroku中的控制台,它仍然说已经保存了新的Tiddle,但事实上,没有新的Tiddle保存到Tiddlers文件夹中。以下是我安装和运行它的脚本:
在Package.json中
{
...
"scripts": {
"start": "tiddlywiki . --server",
"postinstall": "npm install -g tiddlywiki"
}
}
在Procfile中
web: tiddlywiki . --server $PORT $:/core/save/all text/plain text/html "" "" 0.0.0.0
帮我解决这个问题。感谢。
答案 0 :(得分:1)
Heroku的文件系统是短暂的 - 只有在该dyno存在时才存在。当dyno重新启动或结束时(就像应用程序进入休眠状态一样),新的dyno会有一个新的空文件系统。如果您希望文件保持不变,则需要将它们保存为数据库或Amazon S3以进行长期存储。
https://devcenter.heroku.com/articles/dynos#isolation-and-security
每个dyno都有自己的短暂文件系统,并带有最近部署代码的全新副本。在dyno的生命周期中,其运行进程可以将文件系统用作临时暂存器,但是任何其他dyno中的进程都不会看到所写的文件,并且在dyno停止或重新启动时,所写的任何文件都将被丢弃。例如,每次因应用程序部署而更换dyno时都会发生这种情况,并且大约每天一次作为正常dyno管理的一部分。