我正在与Heroku部署Django项目。
首先,我发现staticfiles目录不会自动创建,甚至当我运行
时$ heroku run python manage.py collectstatic --noinput
(顺便说一句,没有错误)。直到知道它看起来与这个问题非常相似。然后我意识到我无法通过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,我尝试了另一种方法。最后,唯一必要的更改是将pocfile更改为
web: python manage.py collectstatic --noinput; gunicorn app-name.wsgi
强制静态收集。
再次感谢,汤姆
heroku dyno文件系统是短暂的,并且在发行版之间也不持续变化。每次您进行heroku run
时,新的Dyno都会为您旋转。这就是为什么您在运行之间没有看到更改的原因。
请参阅有关Dyno Filesystems的短暂性的注释。