在Django中无法加载图片?

0 投票
2 回答
1589 浏览
提问于 2025-04-16 14:38

这件事应该很简单,但我感觉可能是某个路径出问题了。基本上,我的图片显示为404错误。

以下是我Django应用中的相关部分:

models.py

class MemeDetails(models.Model):
    datecreated = models.DateTimeField(default=datetime.datetime.now)
    profileimage = models.ImageField(upload_to="memeimages", blank=True)
    name = models.CharField(max_length=50)
    description = models.CharField(max_length=1000)
    origin = models.CharField(max_length=50)
    origindate = models.DateField()

settings.py

MEDIA_ROOT = '/home/nai/Projects/meme/media/'
MEDIA_URL = '/media/'

所有的图片都放在这个文件夹里 home/nai/Projects/meme/media/memeimages

urls.py

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

views.py

def memepage(request, memeid):

    q = MemeDetails.objects.get(id=memeid)
    memeimage = q.profileimage

    return render_to_response('memepage.html', {'memeid': memeid, 'memeimage': memeimage},context_instance=RequestContext(request))

template

<img src="{{ MEDIA_URL }}{{memeimage }}" />, {{ memeid }}

图片的实际网址是 http://127.0.0.1:8000/media/memeimages/flickrphotobrowser.png,但是我却得到了404错误。

附言:我知道在生产环境中应该用Apache来提供静态图片。我只是想先让这个能正常工作。

求助!

2 个回答

0

更改媒体文件的地址

媒体文件地址 = 'http://127.0.0.1:8000/media/'

2

你的 ADMIN_MEDIA_PREFIX 可能也是 /media/。你需要把其中一个改一下。

撰写回答