【问题标题】:Problem with serving pictures in Django在 Django 中提供图片的问题
【发布时间】:2011-07-28 19:15:25
【问题描述】:

我正在尝试在 django 中创建我的第一个站点,但遇到了问题。我正在尝试提供图片,但无法正常工作。我通过以下方式设置它:
在 settings.py 中:

MEDIA_ROOT = 'C:/Users/John/Documents/My Dropbox/Infostuff/filmsite/media/'
MEDIA_URL = 'localhost:8000/static/'  
ADMIN_MEDIA_PREFIX = '/admin-media/'

在 urls.py 中:

 (r'^static/(?P<path>.*)$', 'django.views.static.serve',
  {'document_root': settings.MEDIA_ROOT}),

在模板页面中是这样的:

<img src="{{MEDIA_URL}}{{a.picture.url}}">

并解析为:

<img src="localhost:8000/static/portrets/0000138_Leonardo_D.jpg">

当我打开 html 页面时,它不显示图片(我得到损坏的图片图标)。但是,如果我去查看源代码并复制上面的 url 并将其直接粘贴到我的浏览器中,它确实会加载图片。我做错了什么?

我正在使用 Django 1.2。我还没有使用 Apache,因为我首先想让它在开发环境中工作。

PS:这是我第一次在这个网站上提问,如果我做错了什么,请告诉。

【问题讨论】:

  • 请发布生成的源代码,这没有任何意义。
  • 请注意:Django 的作者认为提供图片不是最佳选择。您是否考虑过改用 Apache?
  • @cwallenpoole 可以将此方法用于开发目的。为了转移到生产环境,我同意首选使用 nginx 或其他前端静态媒体服务器。

标签: python django django-templates


【解决方案1】:

您使用的是哪个版本的 Django?

你能发布生成的 HTML 代码吗?如果在浏览器中复制粘贴时 URL 有效,则也可能是 html 问题。

你看过这个页面了吗?

http://docs.djangoproject.com/en/dev/howto/static-files/

更新:

你能把模型贴出来吗? a.picture 是图像字段吗?如果是这样,那么您不需要将 MEDIA_URL 放在您的 img src 中,因为它已经是一个绝对 url,并且应该已经包含 MEDIA_URL。尝试删除它,看看它是否有效。

<img src='{{a.picture.url}}' />

有关更多信息,请参阅此页面。

http://docs.djangoproject.com/en/1.3/ref/models/fields/#django.db.models.FileField.storage

【讨论】:

  • 我有。据我所知,我已按照该网站上的每一步操作。我还在这个网站上查看了与此相关的其他一些问题。有趣的是,当我查看源代码时(我使用的是谷歌浏览器),我可以点击生成的链接并进入一个空白页面,但如果我手动复制链接并将其粘贴到地址中栏它确实加载图片。
  • 看起来有人比我更容易回答问题。
【解决方案2】:

好吧,我觉得我很愚蠢... 我不得不改变

MEDIA_URL = 'localhost:8000/static/' 

MEDIA_URL = 'http://localhost:8000/static/' 

然后我有改变

<img src="{{MEDIA_URL}}{{a.picture.url}}">

<img src="{{a.picture.url}}">

感谢您的宝贵时间。

【讨论】:

    【解决方案3】:

    使用:

    MEDIA_URL = 'http://localhost:8000/static/' 
    

    MEDIA_URL = '/static/' 
    

    【讨论】:

      【解决方案4】:

      你的MEDIA_URL 应该只是'/static/' - 或者,如果你必须,'http://localhost:8000/static/'。否则,您的浏览器会将 localhost 解释为路径的一部分,而不是域。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-10
        • 1970-01-01
        • 1970-01-01
        • 2011-11-19
        相关资源
        最近更新 更多