【问题标题】:Django: Making alias in urls.py for amazon s3?Django:在 urls.py 中为亚马逊 s3 制作别名?
【发布时间】:2013-02-15 14:02:31
【问题描述】:

我在 Django 中设置 URL 时遇到问题。

为了提供我的媒体文件,我有这个 Amazon S3 存储桶:

https://somebucket.s3.amazonaws.com/

我在settings.py中设置媒体URL如下:

MEDIA_URL = https://somebucket.s3.amazonaws.com/media/

urls.py里面我设置代码如下:

urlpatterns += patterns('',
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
    'document_root': settings.MEDIA_URL}));

我的意图是,当我从 &lt;img src="/media/image.jpg"/&gt; 指向图像文件时,它将自动指向 http://somebucket.s3.amazonaws.com/media/image.jpg

我该怎么做?我尝试了很多方法,但总是返回 404。

但是,如果我尝试直接访问该文件 http://somebucket.s3.amazonaws.com/media/image.jpg 它可以工作。

【问题讨论】:

  • 我觉得应该是&lt;img src="{{ MEDIA_URL }}image.jpg"/&gt; ?

标签: django amazon-s3 angularjs django-urls django-media


【解决方案1】:

您为什么要这样做?这违背了首先拥有外部存储的大部分目的。这意味着对于每个媒体请求,它必须通过 Django 本身来解析 URL 并生成到 S3 的重定向,这意味着所有开销。

相反,正如 sneawo 在 cmets 中建议的那样,您应该简单地将 img src 属性设置为通过 S3 URL 指向图像。

【讨论】:

  • 嗨丹尼尔,这是因为我正在使用 AngularJS 来填充图像 url。所以,我认为在角度表达式标签前面有一个 media_url 标签有点难看。但它现在解决了。谢谢!
【解决方案2】:

原来django会自动在imagefield url前面附加media_url。

我的印象是我必须附加 media_url,这导致我寻找更简单的解决方案。

Django Admin 只显示相对路径

![django admin 显示相对路径][1]

http://i.stack.imgur.com/aZGPy.png

但是,tasticpie 给了我绝对的路径

http://i.stack.imgur.com/SEdaX.png

所以我现在不必再担心网址了...再次感谢大家 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 2013-12-29
    • 2013-03-29
    • 2010-10-20
    • 2012-05-01
    • 2018-02-10
    • 2013-05-12
    相关资源
    最近更新 更多