0

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

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

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

我在里面设置媒体网址settings.py如下:

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}));

我的意图是,当我指向一个图像文件时,假设<img src="/media/image.jpg"/>它会自动指向http://somebucket.s3.amazonaws.com/media/image.jpg

我怎样才能做到这一点?我尝试了很多方法,但它总是返回 404。

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

4

2 回答 2

0

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

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

于 2013-02-15T17:04:48.457 回答
0

原来,django 会自动将 media_url 附加到图像字段 url 的前面。

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

Django Admin 只显示相对路径

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

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

但是,美味派给了我绝对的道路

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

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

于 2013-02-16T01:16:08.747 回答