2016-07-11 4 views
0

私は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'), 
) 

enter image description here

これは、 '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'

おかげで、

+0

あなたはcollectstaticを無効にしましたが、依然として静的ファイルを収集することを期待していますか?どうして? –

+0

そして、その文書ページの残りの部分、つまりWhitenoiseが有効になっていますか? –

+0

@DanielRoseman DISABLE_COLLECTSTATIC = 0と設定しました。これは、disable_collectstaticがfalseであることを意味するので、collectstaticを有効にします。 –

答えて

0

にあり静的ファイルは、 'static'ディレクトリがDjangoプロジェクトディレクトリ内にあるときに認識されます。残念ながら、Djangoディレクトリ全体と同じ名前を持っていました。両方とも「数学プロジェクト」と呼ばれていました。

はまた、私はこれが私のために働く、

$ heroku config:set DISABLE_COLLECTSTATIC=1 

を設定します。

関連する問題