dajaxice collectstatic создает временный файл

У меня проблема с Dajaxice и с тем, как он создает пользовательский файл javascript для использования в ajax. Когда бегаешь manage.py collectstatic с установленным Dajaxice он создает пользовательский файл javascript. Этот пост также ссылается на эту проблему. В моем случае работает:

python manage.py findstatic dajaxice/dajaxice.core.js

дает:

Found 'dajaxice/dajaxice.core.js' here:
/private/var/folders/dp/yw0xd2f52yg7qmt992s72_9r0000gn/T/tmpRWRAGT

когда бегать локально. У меня проблема в том, что при соединении этого с django-хранилищами и загрузкой для обслуживания статических файлов из Amazon S3, он взрывается, потому что этот файл создается с использованием абсолютного пути, а не относительного пути (я думаю, что это boto, который не реализует то, что django-хранилищам не нравится). Ошибка выглядит так:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 163, in handle_noargs
    collected = self.collect()
  File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 113, in collect
    handler(path, prefixed_path, storage)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 290, in copy_file
    source_path = source_storage.path(path)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/files/storage.py", line 82, in path
    raise NotImplementedError("This backend doesn't support absolute paths.")

(в этом случае я развертываю на Heroku, поэтому я не могу просто скопировать созданный файл вручную в статическое расположение и ссылаться на него). Это можно обойти? Могу ли я заставить Dajaxice поместить сгенерированный файл в относительный путь? Или я могу обойти это, заставив django-хранилища / boto принять абсолютный путь? Или, если все остальное терпит неудачу, есть ли простой способ предварительно сгенерировать файл, за исключением удаления всех моих зависимостей S3, когда я собираю статистику, копирование файла и принуждение Dajax прекратить поиск сгенерированного файла?

Любая помощь приветствуется.

1 ответ

Я встречал эту проблему, пожалуйста, смотрите https://github.com/jorgebastida/django-dajaxice/issues/66, используйте

python manager.py collectstatic

Другие вопросы по тегам