3

好的,我一直在学习 Django,但我是该框架的初学者。我是一个粉丝。我在 heroku 上运行了一个构建,使用 Django-storages 从 Amazon S3 提供静态文件。启动和运行非常容易,没有任何困难。

但是,我错过了日历图标。检查源代码显示 admin 和 img 之间没有斜杠。

例子:

https://s3.amazonaws.com/heroku-sdbhvaehv/adminimg/icon_clock.gif

它显然是此处列出的 Django-storages 中的一个错误:

http://code.larlet.fr/django-storages/issue/121/s3boto-admin-prefix-issue-with-django-14

而且我已经实施了评论中列出的各种修复,但没有运气。

我在 SO 和 Google Groups 上找到了两个帖子,但没有解决方案。

使用 Django 和 s3boto,一些管理图像(icon_clock.gif 和 icon_calendar.gif)不显示

所以——我正在寻找有关如何修复此图标的任何解决方案。我不在乎是否必须在每次推送后修改某些内容,或者做任何事情 - 但我不能缺少日历图标。

有什么帮助吗?

4

1 回答 1

4

问题不在于 boto 或 django-storages。

问题是 django 管理员误用了该{% static %}标签。静态标签(正确地)假设它正在查看整个 url,并且它可以任意修改该 url。通过仅传递一个前缀,django 管理员正在破坏该合同(在最简单的情况下不会被检测到,但是当您尝试做任何更复杂的事情时将是一个大问题。

您应该针对 django 提交一个错误或补丁,以明确地将所有资产 url 完整地传递给静态标签,并将这些完整的资源 URI 转储到 javascript 上下文中。

编辑:这个解决方案应该适合你: http ://code.larlet.fr/django-storages/issue/121/s3boto-admin-prefix-issue-with-django-14#comment-1604389

只需确保您已AWS_QUERYSTRING_AUTH设置为False,否则您将得到夹在其中的查询字符串。

于 2013-07-31T07:26:57.697 回答