私はDjangoプロジェクトによってHerokuアプリケーションとしてデプロイしましたが、静的ファイルを取得することはできません。私はHeroku上の静的Djangoファイルの問題
、ファイルシステムは次のようになります$ heroku config:set DISABLE_COLLECTSTATIC=0 --app mathsproject
、とfalseにDISABLE_COLLECTSTATICを設定しているDjango and Static Assets
で推奨されます正確に何である
settings.py
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = 'static/'
# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static'),
)
これは、 'static'ディレクトリが私のDjangoプロジェクトのルートにあることを示しています。しかし、私は 'staticfiles'ディレクトリがどこにあるのかわかりません。これはどこかに作られるべきですか?
ランニング
、$のHerokuのログ
私は一般的に静的なファイルが不足していることを示すエラーが発生します。これはブラウザでも明らかです。ホワイトノイズは、私が
$ heroku run bash
を実行
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
を置くsettings.pyの底にmathProject/wsgi.pyに、
import os
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mathsProject.settings")
application = get_wsgi_application()
application = DjangoWhiteNoise(application)
を追加することで有効になっている
......
2016-07-11T07:39:30.187273+00:00 app[web.1]: Not Found: /static/assets/js/jquery-1.10.2.min.js
2016-07-11T07:39:30.264037+00:00 app[web.1]: Not Found: /static/assets/img/4.png
2016-07-11T07:39:30.283627+00:00 app[web.1]: Not Found: /static/assets/img/testimonials/1.jpg
........
、次に
$ python manange.py collectstatic --noinput
これは、エラーの数行を与えるの最後は、
OSError: [Errno 2] No such file or directory: '/app/mathsProject/static'
しかし、 '静的' ディレクトリが 'mathsProject'
おかげで、
あなたはcollectstaticを無効にしましたが、依然として静的ファイルを収集することを期待していますか?どうして? –
そして、その文書ページの残りの部分、つまりWhitenoiseが有効になっていますか? –
@DanielRoseman DISABLE_COLLECTSTATIC = 0と設定しました。これは、disable_collectstaticがfalseであることを意味するので、collectstaticを有効にします。 –