2016-08-02 29 views
1

Ich versuche, eine Django-App bereitzustellen, die nested_inline auf einer Heroku-Instanz verwendet. Alles funktioniert gut lokal, aber ich bekomme einen Fehler auf dem Heroku-Server während Collectstatic.Django-Fehler bei Collectstatic bei Verwendung von nested_inline auf heroku

Ich folgte the heroku guide to getting a minimal django setup working. Dann fügte ich "django-nested-inline" zu meiner requirements.txt hinzu, fügte "nested_inline" am Ende meiner INSTALLED_APPS hinzu und "von nested_inline.admin importiere NestedModelAdmin, NestedStackedInline" in meine admin.py.

Alles funktioniert immer noch perfekt lokal, ohne Probleme. Aber wenn ich zu Heroku „git push Heroku Master“ Push, bekomme ich folgende Fehlermeldung:

$ git push heroku master 
Counting objects: 7, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (7/7), done. 
Writing objects: 100% (7/7), 670 bytes | 0 bytes/s, done. 
Total 7 (delta 5), reused 0 (delta 0) 
remote: Compressing source files... done. 
remote: Building source: 
remote: 
remote: -----> Python app detected 
remote: $ pip install -r requirements.txt 
remote: Collecting django-nested-inline (from -r requirements.txt (line 6)) 
remote: Downloading django-nested-inline-0.3.6.tar.gz 
remote: Installing collected packages: django-nested-inline 
remote: Running setup.py install for django-nested-inline: started 
remote: Running setup.py install for django-nested-inline: finished with status 'done' 
remote: Successfully installed django-nested-inline-0.3.6 
remote: 
remote: $ python manage.py collectstatic --noinput 
remote: Post-processing 'admin/css/forms-nested.css' failed! 
remote: Traceback (most recent call last): 
remote: File "manage.py", line 10, in 
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 128, in collect 
remote: raise processed 
remote: whitenoise.django.MissingFileError: The file 'admin/img/nav-bg.gif' could not be found with . 
remote: The CSS file 'admin/css/forms-nested.css' references a file which could not be found: 
remote: admin/img/nav-bg.gif 
remote: Please check the URL references in this CSS file, particularly any 
remote: relative paths which might be pointing to the wrong location. 
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 
remote: 
remote: https://devcenter.heroku.com/articles/django-assets 

Wie es heißt, die forms-nested.css Dateiverweise Bilder wie nav-bg.gif, die scheinbar nicht überall so weit ich existieren kann sagen. Dies verhindert jedoch nicht, dass django und nested_inline lokal einwandfrei funktionieren. Ich bin nicht sicher, warum es auf Heroku bricht?

Antwort

1

Dies ist ein Fehler, der aufgrund von collectstaticpost-process method auftreten kann.

Was Sie tun können, ist Heroku deaktivieren Sie den collectstatic Befehl automatisch ausgeführt:

heroku config:set DISABLE_COLLECTSTATIC=1

Und dann collectstatic laufen mit post-process method disabled:

heroku run python manage.py collectstatic --no-post-process --noinput 

Ist dies nicht der Fall ist, dann wird der Fehler möglicherweise eine verschachtelte_inline-App, die Sie installiert haben.