簡體   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