django1.4设置模板路径和CSS,JS,image等路径的方法

对于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这样的路径。

相关推荐

2 thoughts on “django1.4设置模板路径和CSS,JS,image等路径的方法”

  1. 对于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.

    回复

回复 tyskin 取消回复