sil*_*ser 5 python django heroku collectstatic dokku
使用dokku部署Django应用程序时出现以下错误
Collectstatic configuration error. To debug, run:
$ heroku run python ./manage.py collectstatic --noinput
Run Code Online (Sandbox Code Playgroud)
我发现无法运行heroku run python ./manage.py collectstatic --noinputdokku容器,但是当我尝试时dokku run my app python ./manage.py collectstatic --noinput,静态文件已成功复制到该STATIC_ROOT文件夹,并且没有给出错误消息.
我可以通过将collectstatic命令放入Procfile以下内容来解决问题:
web: python manage.py collectstatic --noinput ; gunicorn myapp.wsgi
Run Code Online (Sandbox Code Playgroud)
不过,我很想知道导致问题的原因以及如何进行调试.有任何想法吗?
你应该在你的settings.py文件四个设置叫MEDIA_ROOT,MEDIA_URL,STATIC_ROOT和STATIC_URL.
我这样设置我的:
MEDIA_ROOT = 'media'
STATIC_ROOT = 'static'
MEDIA_URL = '/media'
STATIC_URL = '/static'
在创建的docker容器内,您将在/ app下找到您的应用程序,它将生成媒体路径/ app/media /和静态路径/ app/static /.
不幸的是,如果你没有在git中提交媒体和静态文件夹,它将不会自动在/ app下创建.
由于git不允许你提交一个空文件夹(它只提交文件),我在我的项目中执行以下操作:
mkdir media static
touch media/.dir
touch static/.dir
git add media/.dir static/.dir
git commit -m 'Make media and static directories'
'touch'命令创建一个空文件,然后你'添加'两个新创建的文件并检查它们.
现在,当您推送时,目录将包含媒体和静态文件.请记住,每次"git push"时,都会创建一个新容器,旧容器将被销毁.虽然这对您的静态文件不是问题,但除非您将其存储在其他位置,否则您的媒体将会丢失.
| 归档时间: |
|
| 查看次数: |
4027 次 |
| 最近记录: |