为什么heroku应用程序不会使用Tiddlywiki保存新文件?

时间:2016-01-16 00:34:48

标签: heroku tiddlywiki5


有没有人遇到像我这样的问题? 我已将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

帮我解决这个问题。感谢。

1 个答案:

答案 0 :(得分:1)

Heroku的文件系统是短暂的 - 只有在该dyno存在时才存在。当dyno重新启动或结束时(就像应用程序进入休眠状态一样),新的dyno会有一个新的空文件系统。如果您希望文件保持不变,则需要将它们保存为数据库或Amazon S3以进行长期存储。

https://devcenter.heroku.com/articles/dynos#isolation-and-security

  

每个dyno都有自己的短暂文件系统,并带有最近部署代码的全新副本。在dyno的生命周期中,其运行进程可以将文件系统用作临时暂存器,但是任何其他dyno中的进程都不会看到所写的文件,并且在dyno停止或重新启动时,所写的任何文件都将被丢弃。例如,每次因应用程序部署而更换dyno时都会发生这种情况,并且大约每天一次作为正常dyno管理的一部分。