简体   繁体   中英

Problem with serving pictures in Django

I'm trying to create my first site in django and I've run into a problem. I'm trying to serve pictures,but it isn't working correctly. I have it set up in the following way:
In settings.py:

MEDIA_ROOT = 'C:/Users/John/Documents/My Dropbox/Infostuff/filmsite/media/'
MEDIA_URL = 'localhost:8000/static/'  
ADMIN_MEDIA_PREFIX = '/admin-media/'

In urls.py:

 (r'^static/(?P<path>.*)$', 'django.views.static.serve',
  {'document_root': settings.MEDIA_ROOT}),

It looks like this in the template page:

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

And it is parsed to this:

<img src="localhost:8000/static/portrets/0000138_Leonardo_D.jpg">

When I open the html page it doesn't display the pictures (I get the broken picture icon). If I however go to view the source and copy the above url and past it directly into my browser it does load the picture. What am I doing wrong?

I'm using Django 1.2. I'm not using Apache yet, because I would first like to get it working in a development environment.

PS: This is the first time I'm asking a question on this site, if I did something wrong, please tell.

What version of Django are you using?

Can you post the generated HTML code? if the URL works when you copy and paste in the browser, it might be an html issue as well.

Have you looked at this page yet?

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

Update:

Can you post the model for a? is a.picture an image field? If so, then you don't need to put the MEDIA_URL in your img src, since it is already an absolute url and it should include the MEDIA_URL already. try removing that and see if it works.

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

For more info see this page.

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

Your MEDIA_URL should just be '/static/' - or, if you must, 'http://localhost:8000/static/' . Otherwise your browser is interpreting the localhost as part of the path, not the domain.

use:

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

or

MEDIA_URL = '/static/' 

Ok, I feel very stupid... I had to change

MEDIA_URL = 'localhost:8000/static/' 

to

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

and then I had change

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

to

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

Thank you for your time.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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