0

我在使用 Dajaxice 以及创建用于 ajax 的自定义 javascript 文件时遇到问题。当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-storages 配对并启动以从 Amazon S3 提供静态文件时,它会爆炸,因为该文件是引用绝对路径而不是相对路径创建的(我认为它的 boto 没有实现django-storages 不喜欢的东西)。错误如下所示:

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 停止查找生成的文件?

任何帮助表示赞赏。

4

1 回答 1

0

我遇到了这个问题,请参阅https://github.com/jorgebastida/django-dajaxice/issues/66,使用

python manager.py 收集静态

于 2013-04-13T09:23:25.713 回答