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