全部,
我试过了tips found on the forum。不幸的是我仍然被卡住了。 图像不会出现在模板中。 至于我现在追踪的错误,它们是双重的:
1)图片应该出现在那里仍然有一个断开的链接和一条错误信息:
Failed to load resource: the server responded with a status of 404 (NOT FOUND),
**http://127.0.0.1:8000/Point3D/grafiek/laptop.jpg**
所以它确实进入正确的路径,但无法找到图像..这是我的MEDIA_ROOT 或者我收到:
Resource interpreted as image but transferred with MIME type text/html with:
**http://127.0.0.1:8000/Point3D/grafiek/**
2)另一个错误是如果我去:http://127.0.0.1:8000/media/
我得到:
Permission denied: /media/
也许这与它有关。
其余的我现在跟着roberts solution,但没有运气..
非常感谢任何帮助!
答案 0 :(得分:1)
你的模板是什么样的?它应该是这样的:
<img src="{{ MEDIA_URL }}Point3D/grafiek/laptop.jpg" alt="" />
我猜你的图片的正确路径应该是http://127.0.0.1:8000/media/Point3D/grafiek/laptop.jpg
答案 1 :(得分:1)
/ media /上的权限被拒绝正是应该发生的事情,否则你页面的每个用户都可以查看该目录中的所有文件(与配置Apache以允许索引目录相同,即,在所有情况下,不是你想要的。尝试通过粘贴完整的URL来访问浏览器中的文件,(并在你的路径中包含媒体网址!):
http://127.0.0.1:8000/media/Point3D/grafiek/laptop.jpg
如果这不起作用,请确保将Django或Apache配置为提供您尝试访问的静态文件。
修改强>
还有一件可能导致您麻烦的事情:/ media /是管理媒体网址的默认设置。如果您的管理媒体网址和您的媒体网址相同,则无济于事。更改,以便您的MEDIA_URL和ADMIN_MEDIA_PREFIX不相同。
答案 2 :(得分:1)
您是否在标记中加入{{ MEDIA_ROOT }}
。
此外,请确保使用RequestContext
对象调用模板,否则将不会在模板中设置{{ MEDIA_ROOT }}
。尝试使用django.views.generic.simple.direct_to_template
而不是django.shortcuts.render_to_response
。请注意,direct_to_template
的调用与render_to_response
类似,只是它将request
作为第一个参数。
from django.views.generic.simple import direct_to_template
# your view code here
return direct_to_template(request, 'path/to/template.html', **kwargs)
答案 3 :(得分:1)
假设您的文件系统上的媒体位于:
/home/username/django-project/media/images/favicon.ico
在settings.py
中,您应该:
import os
PROJECT_PATH = os.path.dirname(__file__)
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
MEDIA_URL = '/media/'
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.media',
)
您的项目urls.py
还应包含以下内容,这些内容仅适用于DEBUG模式:
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT.replace('\\','/')}, name='media'),
)
您的模板应包含以下媒体:
<link rel="icon" href="{{ MEDIA_URL }}images/favicon.ico" />