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