【问题标题】:Django Admin, Amazon S3, Heroku -- missing icon_calendarDjango Admin、Amazon S3、Heroku -- 缺少 icon_calendar
【发布时间】:2013-07-31 09:13:14
【问题描述】:

好的,我一直在学习 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

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

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

Using Django and s3boto, some admin images (icon_clock.gif & icon_calendar.gif) don't display

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

有什么帮助吗?

【问题讨论】:

  • 这个 hack 可能不是一个完整的初学者,但你能在页面中注入一点 jquery 吗?遍历所有 img 元素,测试它们的 src 属性并根据需要进行修复?相关:stackoverflow.com/questions/554273/…
  • 在紧要关头,这是我正在考虑的事情。
  • 或者更 hacky (yuk) 将 icon_clock.gif 的副本存储在 s3.amazonaws.com/heroku-sdbhvaehv/adminimg?
  • 这可能很糟糕,但我正在尝试解决问题——而不是解决世界上的问题。把一张带有 readme.txt 的图片放在那里对我来说很好。谢谢你的建议。我有点尴尬,我在处理这个线程时没有想到它。

标签: python django heroku amazon-s3 django-storage


【解决方案1】:

问题不在于 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,否则查询字符串会夹在其中。

【讨论】:

  • +1 表示评论。在此期间是否有建议的修复方法?
  • 谢谢。我已经尝试了这两种解决方案,但都没有修复。我今天会再次检查它们,看看我做错了什么。
  • 同时使用这两种方法会得到什么输出?
  • 在当前开发版本中已修复。见stackoverflow.com/a/18698270/284318
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多