【问题标题】:Can do nothing through Heroku shell不能通过 Heroku shell 做任何事情
【发布时间】:2014-01-23 22:02:51
【问题描述】:

我准备将一个 django 项目部署到 heroku。

首先,我发现 staticfiles 目录不是自动创建的,甚至在我运行时也没有

$ heroku run python manage.py collectstatic --noinput

(顺便说一句,不会引发错误)。直到知道它看起来与this question 非常相似。然后我意识到我根本无法通过 heroku shell 创建任何文件或文件夹。

例如:

$ heroku run mkdir EXAMPLE
Running `mkdir EXAMPLE` attached to terminal... up, run.7925
$ heroku run ls
Running `ls` attached to terminal... up, run.1406
total 32
BLAH BLAH BLAH NO EXAMPLE DIR HERE

同理:

$ heroku run touch EXAMPLE.txt

另一方面,运行时:

$ heroku run bash

一切看起来都很好,甚至是静态的。文件被收集、编辑、创建,等等。但是在退出 bash 终端并运行之后

$ heroku run ls

它仍然显示同样的问题,没有任何变化。

也许我错过了什么......

解决方案

感谢 friism,我尝试了不同的方法。最后,唯一必要的更改是将 Procfile 更改为

web: python manage.py collectstatic --noinput; gunicorn app-name.wsgi

强制静态收集。

再次感谢汤姆

【问题讨论】:

    标签: django bash shell heroku


    【解决方案1】:

    Heroku dyno 文件系统是短暂的,更改不会在 dyno 之间或版本之间持久化。每次您执行heroku run 时,都会为您创建一个新的测功机。这就是为什么您在运行之间看不到持续变化的原因。

    请在ephemeralness of dyno filesystems 上查看此说明。

    【讨论】:

      猜你喜欢
      • 2021-08-28
      • 1970-01-01
      • 2020-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多