对于DJANGO这类MVC框架来说,路径问题可以称为一个谜一样的东西,很多人因为对路径不知道如何处理而觉得MVC实在是云里雾里不知所云。
本文主要解决django中关于模板路径设置、CSS文件路径设置、JS文件路径设置、图片路径设置等常见问题。文中将templates和media(包含js、css、images目录)放到了项目目录的根目录,更具有一般性质。
设定模板路径
设置模板路径比较简单,只要在setting.py里面的TEMPLATE_DIRS选项里面加上这么一句话即可:
import os.path TEMPLATE_DIRS = ( os.path.join(os.path.dirname(__file__), '../templates').replace('\\','/'), )
这意味着,你可以在项目的根目录下面,建立一个templates目录,里面放你所有的模板
设定CSS/JS/IMAGES等路径
1、在setting.py里面,加入下面一句话,指定根目录下面的media路径:
STATIC_PATH= os.path.join(os.path.dirname(__file__), '../media').replace('\\','/')
2、在urls.py里面设定这么一句话,将请求CSS/JS/IMAGES的URL转到该地方
(r'^site_media/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_PATH}),
3、那么在我们的模板里面,现在已经可以用以下方法访问JS/CSS/IMAGES
<link href="/site_media/style/style.css" rel="stylesheet" type="text/css" />
该方法的一个优点是,不用详细设置JS、CSS、images三个不同的路径,只要设定一个,在模版文件里面,直接指定文件的子目录就可以了,比如图片和JS可以这么写:
<img src='/site_media/images/a.jpg'>
<script src='/site_media/js/s.js'> </script>
请看这里,我们并没有在urls.py中指定/site_media/images这样的路径。
你好博主,请您帮忙写一篇CocoVPN评测文章,我们会给你20%销售提成,并提供一枚终身9折优惠码。客服QQ:877529212
对于django.views.static.serve方法,django官方说法:Using this method is inefficient and insecure . Do not use this in a production setting. Use this only for development.