所有
我已经开始提出这个问题(http://stackoverflow.com/questions/5016864/include-image-files-in-django-templates-shows-broken-link),其中有几个有用的anserws,但不知怎的,这仍然没有解决我的麻烦。 因此,我尝试发布我的代码,希望有人能够告诉我什么出错了.. 我似乎错过了一些但却看不到的东西:
在settings.py中:
MEDIA_ROOT = 'C:/Users/Tijl/Documents/Programming/Dashboard/src/DashboardDesign/FigureOnWebSite/templates/images/static'
MEDIA_URL = 'http://localhost:8000/static/'
在urls.py中:
(r'^Point3D/graphics/$', 'FigureOnWebSite.views.graphics'),
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
在views.py中:
> def graphics(request):
> laptop = "laptop.jpg"
> t = loader.get_template('FigureOnWebSite/templates/Figure.html')
> c = Context({'picture': laptop})
> return HttpResponse(t.render(c))
在我的Figure.htm中;
<img src"{{picture}}" alt = "picture"/>
它显示了一个损坏的链接图像,如果我右键单击我可以看到正确的来源,但仍然没有显示它链接是:
http://127.0.0.1:8000/Point3D/graphics/
文件的位置在: C:\ Users \用户Tijl \文件\编程\控制板\ SRC \ DashboardDesign \ FigureOnWebSite \模板\图像
如果我将Figure.html更改为;
{{picture}}
它在http://127.0.0.1:8000/Point3D/graphics/
希望上述内容足以帮助我。
非常感谢! Tijl
答案 0 :(得分:0)
这比以前的问题更容易回答。但你可能刚刚编辑过你的旧问题。
解决方案应该是:更改您的MEDIA_ROOT&amp; MEDIA_URL到
MEDIA_ROOT='C:/Users/Tijl/Documents/Programming/Dashboard/src/DashboardDesign/FigureOnWebSite/templates/images/'
MEDIA_URL='static/'
将您的views.py更改为:
from django.http import RequestContext
from django.shortcuts import render_to_response
def graphics(request):
laptop = "laptop.jpg"
c = {'picture': laptop}
return render_to_response('FigureOnWebSite/templates/Figure.html',c,RequestContext(request))
和你的figure.html:
<img src="{{MEDIA_URL}}{{picture}}" />
注意:如果您在模型中使用ImageFileField,这对您来说将更容易。你可以写:
<img src="{{picture.url}}" />
并且您返回的网址是不“正确”的网址,它在http://127.0.0.1:8000/之后缺少静态/。您的正确网址必须是:
http://127.0.0.1:8000/static/laptop.jpg