我正在尝试在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:这是我第一次在这个网站上提问,如果我做错了,请告诉你。
答案 0 :(得分:0)
您使用的是什么版本的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
答案 1 :(得分:0)
您的MEDIA_URL
应该是'/static/'
- 或者,如果必须,'http://localhost:8000/static/'
。否则,您的浏览器会将localhost
解释为路径的一部分,而不是域。
答案 2 :(得分:0)
使用:
MEDIA_URL = 'http://localhost:8000/static/'
或
MEDIA_URL = '/static/'
答案 3 :(得分:0)
好的,我觉得很蠢...... 我不得不改变
MEDIA_URL = 'localhost:8000/static/'
到
MEDIA_URL = 'http://localhost:8000/static/'
然后我改变了
<img src="{{MEDIA_URL}}{{a.picture.url}}">
到
<img src="{{a.picture.url}}">
感谢您的时间。