链接Django中的图像

链接Django中的图像,django,Django,我有一个新的django项目叫做mysite。在mysite中有一个名为static的文件夹,其中保存了我的所有图像 mysite内部还有一个模板文件夹,其中包含一个名为index.html的文件,其中包含以下基本代码: <html> <head></head> <body><img src = WHAT GOES HERE?? /> </html> 在my settings.py文件中,STATIC_URL='/STAT

我有一个新的django项目叫做mysite。在mysite中有一个名为static的文件夹,其中保存了我的所有图像

mysite内部还有一个模板文件夹,其中包含一个名为index.html的文件,其中包含以下基本代码:

<html>
<head></head>
<body><img src = WHAT GOES HERE?? />
</html>
在my settings.py文件中,STATIC_URL='/STATIC/'

要正确引用静态图像文件,img标签中应该包含的确切文本是什么(注意:我不寻找指向文档的链接)。我是否需要更改任何文件夹/设置结构?多谢各位


我添加了以下标签:

但是,它仍然没有加载——它似乎走的是正确的路径(浏览器中的图像路径是127.0.0.1:8000/static/logo.jpg)。我需要更改什么才能正确加载?我已经检查过了,确保图像在那个位置

更新:这就是我最终让它工作的方式:

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root':     sttings.MEDIA_ROOT}),
)
if settings.DEBUG:
urlpatterns+=模式(“”,
(r“^site\u media/(?P.*)”、“django.views.static.service”、{document\u root:sttings.media\u root}),
)
(我使用的是媒体url而不是静态url)。有更简单的方法吗?

如果图像被称为“hi.jpg”,它将如下所示:

img src=“{{STATIC_URL}}hi.jpg

这将解析为上传到STATIC_URL目录的文件,在您的示例中为:

/静态/hi.jpg

David542

您的结构应该如下所示

MyProject
    \MySite
        \static
使用runserver时将提供此静态文件夹。当您将工作移动到生产环境中时,您可能希望使用django的
/manage.py collectstatic
,并确保以您在settings.py文件中指定的静态url为静态介质提供服务。因此,如果您的静态文件夹中有一个图像,您应该能够通过说
/static/some_image.png

直到版本1.3,Django才包含Staticfiles。如果您的年龄大于1.3,这将解释为什么您当前的设置不适合您。(我猜这是你的问题。)

希望这有帮助

编辑:如果通过键入路径来提供服务对您和您的客户都有效,那么您确实应该使用另一个答案所说的内容,并使用
{{STATIC\u URL}}hi.jpg
就像您选择更改静态URL一样,您不必更改模板来匹配,因为它们会自动工作。

首先,当您感觉好像理解了在本地和生产环境中提供静态文件背后的概念时

然后确保您已将
django.contrib.staticfiles
添加到您的
已安装的应用程序中

如果图像名为“pic.jpg”,则会

img src = "{{'static/pic.jpg'}}"
这对我来说很有效…也检查一下
django.contrib.staticfiles
,在settings.py的已安装应用程序中,我添加了以下标记:。但是,它仍然没有加载——它似乎要走正确的路径(浏览器中的图像路径显示)。我需要更改什么才能正确加载?我已经检查了图像是否在那个位置,我不确定“不加载”是什么意思。一个好的测试是,在服务器运行时,直接转到url,在本例中为“”。你看到图像了吗?如果不这样做,说明您没有正确设置静态主机。@wilbbe01我的Django版本是…>>>django.VERSION(1,3,0,'final',0)您对映像的权限是什么?是的,我正在使用manage.py运行服务器。图像的权限是-rw-r--r--如果您在web浏览器中键入
127.0.0.1:8000/static/
,django会告诉您什么?页面未找到(404)请求方法:获取请求URL:使用mysite.URL中定义的URLconf,django尝试了以下URL模式,顺序为:^hello/$^$^hello/about/$new^time/$当前URL,static/,这些答案中的任何一个都不匹配。这不会给以前的答案添加任何内容
img src = "{{'static/pic.jpg'}}"