[英]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.