2013-02-10 8 views
0

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

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-storages/boto принять абсолютный путь? Или, если все остальное не удается, есть ли простой способ предварительно сгенерировать файл, не удалив все мои зависимости S3, когда я собираю статику, копируя файл и заставляя Dajax перестать искать сгенерированный файл?

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

ответ