对于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这样的路径。
标签:media,image,路径,django1.4,JS,模板,os,CSS From: https://blog.51cto.com/peishuai/6042081