17

https://devcenter.heroku.com/articles/djangoの手順に従って構成されたDjangoアプリをHeroku/Cedarで実行しています。

Herokuの指示に従ってgunicornを使用すると、Djangoの管理者が機能するために必要な静的ファイルを含めることができません。ローカル開発用にProcfileを「manage.pyrun_gunicorn」に変更できますが、Herokuではうまくいきません。

私は修正を探し回っています-他の静的ファイルと一緒にS3にスローせずに管理静的ファイルを含める方法はありますか?

4

9 に答える 9

8

runserverを使用し、DEBUG = Trueを使用してアプリを構成すると、開発マシンと同じように管理ファイルが提供されます。ただし、これは絶対に推奨される方法ではないため、S3に配置することをお勧めします。

django-storagesアプリを使用すると、すべての管理ファイルをS3に自動的にプッシュするようにcollectstaticを構成するのは非常に簡単です。ここで道順を見つけることができます

于 2012-04-25T03:47:31.367 に答える
8

この投稿をチェックしてください:http://matthewphiong.com/managing-django-static-files-on-heroku

それでも問題が解決しない場合は、通常のurlパターンタプルの後にurls.pyに以下を追加してみてください。herokuにプッシュする前に、STATIC_ROOTが設定されていて、ローカル環境でcollectstaticを実行していることを確認してください。

urlpatterns += patterns('',
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': settings.STATIC_ROOT,
    }),
 )
于 2012-04-25T14:49:55.603 に答える
8

代わりにこれらを追加するだけです

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()

django1.4.1を使用する

于 2013-02-25T06:52:12.813 に答える
6

質問された日付に比べると少し遅いようです。しかし、私はこの問題に巻き込まれ、私が間違ったことに30分を費やしました。だからここに、この罠に陥る可能性のある人々のための魔法の解決策があります。

Herokuに問題がありますdjango.contrib.staticfiles.urls

解決

Herokuセットアップに dj-staticダウンロードへのリンク)をインストールする必要があります。これはDjangoミドルウェアユーティリティであり、GunicornなどのWSGIサーバーを使用して本番環境から静的アセットを適切に提供できます。

これが誰かに役立つことを願っています。

于 2014-09-16T17:45:43.053 に答える
3

'project_directory'に'static'フォルダーを作成します。

管理サイトの静的ファイルを提供できる「settings.py」ファイルに「STATIC_ROOT」パスを設定します。

STATIC_ROOT = (os.path.join(os.path.dirname(__file__), '..', 'static'))

'/urls.py'にSTATIC_ROOTを追加します

from django.conf import settings
    urlpatterns += patterns('',
        url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.STATIC_ROOT,
        }),
    )

次のコマンドを実行して、すべての管理静的ファイルをプロジェクトの静的フォルダーにコピーします。

python manage.py collectstatic

次に、git add、commit、およびherokumasterをプッシュします。

于 2014-05-25T20:00:20.977 に答える
2

ホワイトノイズを使用せずにHerokuにデプロイする場合(これをお勧めします)、必ずdj_statichttps://pypi.python.org/pypi/dj-staticを使用してください

過去3時間かけて、ファイルをherokuに提供しようとしましたが、dj_staticは2分以内に機能しました。

于 2018-03-21T08:36:03.647 に答える
1

django管理者に次の編集を行ってもらいました

urls.py(最後に)

import settings
urlpatterns += patterns('',
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': settings.STATIC_ROOT,
    }),
)

Procfile

web: gunicorn hellodjango.wsgi -b 0.0.0.0:$PORT
于 2013-01-15T15:46:29.647 に答える
0

'django.contrib.staticfiles.views.serve'

それ以外の

'django.views.static.serve'

于 2013-03-31T16:56:29.103 に答える
0

これに従って、Djangoとherokuの静的関連の問題をすべて修正してください。

settings.py最後にこれを貼り付けます

import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
    )
TEMPLATE_DIRS = (
    os.path.join(BASE_DIR,'templates'),
    )

STATIC_URL = '/static/'

特定のアプリのテンプレートは次の場所にある必要がありますapp_name/templates/app_name/

テンプレートをレンダリングするとき、これはあなたが指定する方法ですtemplate name

views.py

.....
return render(request,'app_name/template_name.html',context)

ここstatic filesにファイルを配置するには:

project_folder/app_name/static/app_name/css

project_folder/app_name/static/app_name/js

project_folder/app_name/static/app_name/img

静的ファイルの使用パスにアクセスするにはapp_name/css/style_name.css

これに従うと、すべての静的ファイルがherokuとローカル開発マシンに正常に読み込まれます。

于 2015-07-30T16:56:40.073 に答える