繁体   English   中英

在Django中提供图片的问题

[英]Problem with serving pictures in Django

我正在尝试在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页面时,它不显示图片(我得到了损坏的图片图标)。 如果我然而去查看源和上面的网址和过去,它直接复制到我的浏览器加载图片。 我究竟做错了什么?

我正在使用Django 1.2。 我尚未使用Apache,因为我首先要使其在开发环境中工作。

PS:这是我第一次在此网站上提问,如果我做错了,请告知。

您正在使用哪个版本的Django?

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

你看过这个页面了吗?

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

更新:

您可以为张贴模型吗? 图片是图像场吗? 如果是这样,则您无需将MEDIA_URL放入img src中,因为它已经是一个绝对URL,并且应该已经包含MEDIA_URL。 尝试删除它,看看是否可行。

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

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

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

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

采用:

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

要么

MEDIA_URL = '/static/' 

好吧,我感到非常愚蠢...我不得不改变

MEDIA_URL = 'localhost:8000/static/' 

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

然后我有了改变

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

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

感谢您的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM