栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

无法弄清楚在django开发环境中提供静态图像

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

无法弄清楚在django开发环境中提供静态图像

这是一篇很长的文章,基本上总结了我从Django中学到的所有知识,以便使静态文件正常工作(花了我一段时间才了解所有不同部分如何组合在一起)。

为了在开发服务器(以及后来的真实服务器)中提供静态映像,您将必须做一些事情(特别注意第三和第四步):

设置MEDIA_ROOT

MEDIA_ROOT是一个常量,它告诉Django文件的 物理
路径(在您的文件系统上)。使用您的示例,就像您编写的一样,需要将MEDIA_ROOT设置为’C:/ siteURL / galleries
/’。MEDIA_ROOT将在以下步骤之一中使用,这就是我们设置它的原因。

设置MEDIA_URL

MEDIA_URL是图像所在的“ URL”。换句话说,只要你想获得的图像,链接,寻找 与启动 MEDIA_URL。通常,这 不是 以“
http”开头,因为是从您自己的服务器提供服务(我的MEDIA_URL通常设置为“ / site_media
/”,这意味着从根域开始,然后转到site_media等)。

使用MEDIA_URL

MEDIA_URL不能正常运行,您实际上必须使用它。例如,当您编写获取文件的HTML时,它需要如下所示:

<li><img src="{{MEDIA_URL}}/160.jpg" /></li>

看看我如何告诉模板使用MEDIA_URL前缀吗?最终转化为

'http://some-good-URL/galleries/160.jpg'

请注意,为了能够在模板中实际使用MEDIA_URL
,如果我没有记错的话,您将必须将该行添加

'django.core.context_processors.media'
TEMPLATE_CONTEXT_PROCESSORS
settings.py文件中的设置中。

使您的开发服务器提供静态文件

在实际环境中,您将配置地址为“
static_media”之类的文件,而无需通过Django即可提供。但是在开发环境中,您也希望从Django对其进行服务器处理,因此您应该将此通用行添加到urls.py文件的末尾:

if settings.DEBUG:# Serve static files in debug.urlpatterns += patterns('',    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',    {'document_root': settings.MEDIA_ROOT,    'show_indexes' : True}),)

请注意,使用url“ site_media /
*”(实际上是我的MEDIA_URL)如何处理并从我的MEDIA_ROOT文件夹(即MEDIA_ROOT设置起作用的位置)提供该内容。

最后说明

让我感到困惑的是,这里的很多事情都是为了方便。例如,仅在您的调试网址格式中使用MEDIA_ROOT,以告知Django从何处加载。并且MEDIA_URL只是为了鼓励您不要在所有HTML文件中放入绝对URL,因为当您决定将文件移动到其他服务器时,必须手动更改所有文件(而不是仅更改MEDIA_URL不变)。

当然,这一切都不是必需的:您可以使用自己的文件夹对调试URL模式进行硬编码,确保静态文件确实是从URL服务器存储的(通过在浏览器中访问它),然后进行手工编码而
无需 在HTML文件中使用MEDIA_URL设置,只是为了确保一切正常。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/662396.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号