質問

Dokkuを使用してDjangoアプリをデプロイすると、次のエラーが発生します

Collectstatic configuration error. To debug, run:
$ heroku run python ./manage.py collectstatic --noinput

私は実行する方法が見つかりませんでした heroku run python ./manage.py collectstatic --noinput dokkuコンテナのために、しかし、私がしようとしているとき dokku run my app python ./manage.py collectstatic --noinput, 、静的ファイルが正常にコピーされます。 STATIC_ROOT フォルダとエラーメッセージが表示されません。

私は置くことで問題を解決することができました collectstatic にコマンドを入力します。 Procfile:

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

それでも、何が問題の原因であり、どのようにデバッグできるかを知りたいと思います。何か考えは?

役に立ちましたか?

解決

あなたはあなたの中に四つの設定を持っている必要がありますsettings.py 呼び出されたファイル MEDIA_ROOT, MEDIA_URL, STATIC_ROOTSTATIC_URL.

私はそのように私のものを設定しました:

MEDIA_ROOT = 'media' STATIC_ROOT = 'static' MEDIA_URL = '/media' STATIC_URL = '/static'

作成されるdockerコンテナ内には、メディアパス/app/media/と静的パス/app/static/を作成する/appの下にアプリケーションがあります。

残念ながら、gitでmediaフォルダとstaticフォルダがコミットされていない場合、/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'コマンドは空のファイルを作成し、新しく作成された2つのファイルを'git add'してチェックインします。

これで、プッシュすると、ディレクトリがメディアと静的ファイルを含むようになります。「Git push」するたびに、新しいコンテナが作成され、古いコンテナが破棄されることに注意してください。これは静的ファイルの問題ではありませんが、他の場所に保存しない限り、メディアは失われます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top