您的位置:首页 > 编程语言 > Go语言

django 静态文件的配置总结

2016-11-11 14:36 330 查看
django框架的使用,想引用静态css文件,怎么都引用不到,从网搜了好多,大多因为版本问题,

和我现在的使用的dango1.1配置不同,根据资料和公司的项目最终解决,于是想整理总结下各版dango静态文件的配置,以备后查;

配置原因:由于django不处理静态文件(css、js、image等),而是交与web服务器处理。

而django的路径处理和其他web框架有些区别,它需要我们手动的配置静态文件的路径,而不能直接引用。

静态文件的配置的分两种

    第一种为django的开发服务器的配置

    第二种是生产服务器的nginx或apache的web服务配置

第一种,django的开发服务器的静态文件配置,根据django版本的不同,有着比较大的区别。

    dango 1.1静态文件配置:

        1、在项目目录中同settings目录建立static文件夹,其中存放 js 、css 、images文件,可再单独创建文件存放。

我的文件路径:



        2、在settings中增加静态文件目录配置:

STATIC_PATH = os.path.join( os.path.dirname(__file__) , 'static' )

        3、在url.py 中增加静态文件的路径 :

# u静态文件

urlpatterns += patterns('',

     #(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_PATH}),  

     (r'^images/(?P<path>.*)$' , 'django.views.static.serve', 

        {'document_root': os.path.join( settings.STATIC_PATH , 'images' ) } ) ,

     (r'^css/(?P<path>.*)$' , 'django.views.static.serve', 

        {'document_root': os.path.join( settings.STATIC_PATH , 'css' ) } ) ,

     (r'^js/(?P<path>.*)$' , 'django.views.static.serve', 

        {'document_root': os.path.join( settings.STATIC_PATH , 'js' ) } ) ,  

 )

          4、在模板中引用:

<link href="/css/bootstrap.min.css" rel="stylesheet">
<script src="/js/ie-emulation-modes-warning.js"></script>

主要是路径的问题,其他路径应该也可应,比如url.py中的直接使用start/来作为url,以下均匹配,以验证:

# 匹配static 文件夹及子文件夹中的文件
(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_PATH}),  
# 匹配image中的文件
#(r'^images/(.*)$' , 'django.views.static.serve', {'document_root': os.path.join( settings.STATIC_PATH , 'images' ) } ) ,
# 配置css文件价中的文件及子文件夹中的文件
#(r'^css/(?P<path>.*)$' , 'django.views.static.serve', {'document_root': os.path.join( settings.STATIC_PATH , 'css' ) } ) ,
#(r'^js/(?P<path>.*)$' , 'django.views.static.serve', {'document_root': os.path.join( settings.STATIC_PATH , 'js' ) } ) ,

 

    django 1.3 静态文件配置:

      django1.3提供了django.contrib.staticfiles这个模块,方便使用静态文件,显示图片,使用css等。

默认情况下(如果没有修改STATICFILES_FINDERS的话),Django首先会在STATICFILES_DIRS配置的文件夹中寻找静态文件,然后再从每个app的static子目录下查找,并且返回找到的第一个文件。

settings中新增的配置,MEDIA_ROOT、 MEDIA_URL 、STATIC_ROOT  、STATIC_URL

MEDIA:指用户上传的文件,比如在Model里面的FileFIeld,ImageField上传的文件。如果你定义

MEDIA_ROOT=c:\temp\media,那么File=models.FileField(upload_to="abc/"),上传的文件就会被保存到c:\temp\media\abc。MEDIA_ROOT必须是本地路径的绝对路径。

MEDIA_URL是指从浏览器访问时的地址前缀。

STATIC_ROOT用于存放网站自己的js,css,图片

   注意:不要把你项目的静态文件放到这个目录。这个目录只有在运行[b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: