2017-01-27 12 views
3

'git push heroku master'(Djangoアプリから)を実行すると、プッシュは拒否されます。私は以下のトレースバックを含んでいます。私はcollectstaticを無効にすることができますが、すべての静的ファイルはWebページにありません。OSError:[Errno 2]このようなファイルやディレクトリはありません: '/ tmp/MakeCalls/Static'

私のローカルサーバにpython manage.py collectstatic --noinputを実行すると、エラーは発生しません。私はこの2日間過ごしました、私が間違っていることを確信していません。私はstaticfilesのために私の.settingsを以下に含めました。私はローカルホスト上で完璧に動作するwhitenoiseを使用しています。

私はそれが見つからない相対パスと関係していると思います。私のローカルサーバーにはエラーがないので、それはできません。

remote:  $ python manage.py collectstatic --noinput 
remote:  Traceback (most recent call last): 
remote:   File "manage.py", line 10, in <module> 
remote:   execute_from_command_line(sys.argv) 
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line 
remote:   utility.execute() 
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute 
remote:   self.fetch_command(subcommand).run_from_argv(self.argv) 
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv 
remote:   self.execute(*args, **cmd_options) 
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute 
remote:   output = self.handle(*args, **options) 
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 176, in handle 
remote:   collected = self.collect() 
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 98, in collect 
remote:   for path, storage in finder.list(self.ignore_patterns): 
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 112, in list 
remote:   for path in utils.get_files(storage, ignore_patterns): 
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/utils.py", line 28, in get_files 
remote:   directories, files = storage.listdir(location) 
remote:   File "/app/.heroku/python/lib/python2.7/site-packages/django/core/files/storage.py", line 299, in listdir 
remote:   for entry in os.listdir(path): 
remote:  OSError: [Errno 2] No such file or directory: '/tmp/MakeCalls/Static' 
remote: 
remote: !  Error while running '$ python manage.py collectstatic --noinput'. 
remote:  See traceback above for details. 
remote: 
remote:  You may need to update application code to resolve this error. 
remote:  Or, you can disable collectstatic for this application: 
remote: 
remote:   $ heroku config:set DISABLE_COLLECTSTATIC=1 

Staticfiles:

STATICFILES_DIRS = ([ 
    os.path.join(os.path.dirname(BASE_DIR), 'MakeCalls', 'Static'),  
]) 

STATIC_URL = '/Static/' 

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'MakeCalls', 'MakeCalls', 'Static') 



MEDIA_ROOT = os.path.join(BASE_DIR, 'static', 'media') 

MEDIA_URL = os.path.join(BASE_DIR, 'media/') 


STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' 

答えて

5

だから私はこの自分自身を修正するために管理。問題は、すべての静的ファイルがroot/Staticで整理され、STATICFILES_DIRSで提供されていることでした。しかし何らかの理由でHerokuはこれを読むことができません。だから、私はすべてのstaticfilesをroot/app/staticに置き、staticfiles_dirsを設定で削除しました。

+0

私は 'STATICFILES_DIRS'をコメントアウトして正常に動作しましたが、これには何か欠点がありますか? – Calco

関連する問題