Django 403 Forbidden使用外部图像时出错

时间:2015-11-05 01:52:21

标签: python html django

我正在使用Django模板来显示电影海报的缩略图。这是我的观看代码:

@csrf_exempt
def hello(request):
    t = get_template('index.html')
    c = django.template.Context({'test':'http://ia.media-imdb.com/images/M/MV5BMjIwNTYzMzE1M15BMl5BanBnXkFtZTcwOTE5Mzg3OA@@._V1_SX300.jpg'})
    return HttpResponse(t.render(c))

在我的模板中,我正在尝试使用此图像来显示缩略图:

<li>
  <img src="{{ test }}" alt="" title="" class="property_img"/>
</li>

我收到此错误:

  

GET http://ia.media-imdb.com/images/M/MV5BMjIwNTYzMzE1M15BMl5BanBnXkFtZTcwOTE5Mzg3OA@@._V1_SX300.jpg 403(禁止)

我的本​​地静态文件正在运行,但是如果我想从Web服务器获取图像呢?

1 个答案:

答案 0 :(得分:0)

这是由ia.media-imdb.com的Web服务器(Apache,Nginx等)引起的。

他们的网络服务器会检查每个访问者的HTTP REFERER标头,并且只允许访问图像,如果访问者来自某些域。

这是限制hotlinking to images数量的常见设置(当人们直接链接到其他主机上的图像文件时)。通常会阻止热链接,因为它会导致流量而不会真正使网站成为真正的访问者。

解决方案是链接来自不同网站的图片,这不会阻止热链接。