• [转]Django1.6x static静态文件配置


       转自http://blog.segmentfault.com/silhouette/1190000000484873,亲测可行,另外别忘了了import settings

    刚开始研究django,完全一头雾水,为了静态文件配置的问题研究了好几天都没效果,网上的方法几乎都行不通,快放弃的时候总算解决啦!一定要和大家分享下,如果有人和我一样悲惨,希望这篇文章能帮到你^ ^

    window7 python2.7 django1.6.2

    目录结构:

    mysite

    |--manage.py
    | |--mysite
    | | |--init.py
    | | |--settings.py
    | | |--urls.py
    | | |--views.py
    | | |--wsgi.py
    | |--template
    | | |--...(html 文件)
    | |--static
    | | |--css
    | | |--js

    static文件夹是可以放在任意位置的,这里我选择放在根目录下
    解决方法有两个:

    方法一:

    在settings.py中添加:

    STATICFILES_DIRS = (  
        'static'  
    )
    

    注意:这里('static'后面)不能加逗号!
    在urls.py中添加:

    url(r'^staticfiles/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATICFILES_DIRS, 'show_indexes': True}),  
    

    注意:这里不能写static,而要换成别的名字,此处换为staticfiles

    在html中引用方法:

    <link href="/staticfiles/css/test.css" rel="stylesheet" type="text/css">  
    

    方法二:

    方法一中有两个缺点:

    1. 静态文件地址不能为static
    2. 在django自带的admin页面中,是没有css效果的
      因此做一些改进:

    在settings.py中添加:

    STATICFILES_DIRS = (  
        'static',  
    )  
    STATIC_ROOT = os.path.join(BASE_DIR,'mysite/static')  
    

    以上前提要在mysite文件夹里新建一个static文件夹,用于存放admin自带的css等静态,注意:STATICFILES_DIRSSTATIC_ROOT地址不能相同,'static'后要加逗号(好奇怪...一会儿要加一会儿不要加...我也不清楚是为什么,但是不加就会报错)

    然后运行python manage.py collectstatic
    这个命令应该是把STATICFILES_DIRS指定下的文件都复制到了STATIC_ROOT指定的文件夹下吧...

    在urls.py中添加:

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

    在views.py中需要改成:

    return render_to_response("test.html",RequestContext(request))   
    

    在html中引用:

    <link href="{{STATIC_URL}}css/css.css" rel="stylesheet" type="text/css">  
    

    以上~

    但是如果你按步骤做到现在,应该会出现编码错误的问题:

    Exception Type: UnicodeDecodeError
    

    据说这是python的一个bug,找到出错地方:

    Exception Location: C:Python27libmimetypes.py in enum_types, line 249
    

    所以我们需要在mimetypes.py文件中,添加

    reload(sys)  
    sys.setdefaultencoding('gb18030')  

       

        

  • 相关阅读:
    Spring 中的邮件任务
    Spring 定时任务
    java中同步交互 与 异步交互
    Springboot 版本包冲突
    Derby 配置环境变量
    Springboot中的Web服务Tomcat改为Jetty
    二叉树中和为某一值的路径
    0-Java中this和super的用法总结
    树9:二叉搜索树的后序遍历
    位运算-输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
  • 原文地址:https://www.cnblogs.com/Bird-Man/p/3884705.html
Copyright © 2020-2023  润新知