私はherokuにうまくデプロイしているdjangoアプリを持っています。collectstatic コマンドをローカルでドライランすると、すべて正常に動作します。
python manage.py collectstatic --dry-run --noinput
....
Pretending to copy '/Users/hari/.virtualenvs/bsc2/lib/python2.7/site-packages/django/contrib/admin/static/admin/js/admin/ordering.js'
Pretending to copy '/Users/hari/.virtualenvs/bsc2/lib/python2.7/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js'
71 static files copied.
これにもかかわらず..私のdjango管理者の静的ファイルは使用されず、デバッグがFalseに設定されたherokuで必要最小限のdjango管理者サイトを取得します。
Debug を True に設定すると、heroku に「リッチ」な管理サイトが表示されます。Debug を True または False に設定すると、「git push heroku master」コマンドの端末出力に、静的ファイルの収集に関する情報が表示されません。
Heroku の gunicorn を使用し、「collecting static」メッセージを表示する「helloworld」アプリケーションの例を試してみました。また、このコード スニペットを urls.py に挿入してみました。しかし、それも役に立ちません。
django.confのインポート設定から
if not settings.DEBUG:
urlpatterns += patterns('',
(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
次に、heroku configに以下を追加してみました
heroku config:add DISABLE_COLLECTSTATIC=0
しかし、それも私のdjango管理サイトにすべてのスタイルを表示しませんでした.
最後に、Procfile で gunicorn に切り替えようとしましたが、管理スタイルも表示されませんでした。Debug=True を設定するだけで、管理スタイルが表示されます。
Heroku の Django 1.4.2 および 1.5.1 でこれを試しましたが、どちらも「通常の」管理サイトを表示していません。S3ルートに行かずに管理者ファイルをherokuに置く方法はありますか?