Django图像服务问题

0 投票
4 回答
1019 浏览
提问于 2025-04-16 15:01

我正在尝试用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:这是我第一次在这个网站上提问,如果我做错了什么,请告诉我。

4 个回答

0

好的,我觉得自己很傻……

我需要把

MEDIA_URL = 'localhost:8000/static/' 

改成

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

然后我还需要把

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

改成

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

谢谢你们的时间。

0

你的 MEDIA_URL 应该设置为 '/static/',如果非要加上地址的话,可以用 'http://localhost:8000/static/'。否则,你的浏览器会把 localhost 当成路径的一部分,而不是域名。

0

使用:

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

或者

MEDIA_URL = '/static/' 

撰写回答