Jghost

jeiao, In me the tiger sniffs the rose !

导航

django1.6 static staticfile

django1.6的settings.py 中的static 配置和之前版本的还是有点出处的,研究了两天 ,终于达到了能用的地步.这里会结合django1.6 在apache2上的部署来说:

从官网上看出,django1.6的static 文件的存放位置有了改变,如下面我的项目tree:

oakcloud/
├── db.sqlite3
├── logs
│   ├── django_db_backends_logfile.log
│   ├── django.log
│   └── django_request_logfile.log
├── manage.py
├── oak
│   ├── admin.py
│   ├── __init__.py
│   ├── models.py
│   ├── network.py
│   ├── plugins
│   │   ├── __init__.py
│   │   └── network
│   │       ├── __init__.py
│   │       ├── methods.py
│   │       └── models.py
│   ├── static
│   │   ├── __init__.py
│   │   └── oak
│   │       ├── css
│   │       │   ├── bootstrap-cerulean.css
│   ├── templates
│   │   └── oak
│   │       ├── index.html
│   ├── urls.py
│   └── views.py
├── oakcloud
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── static

根据官方文档上做提供的教材, 项目tree 是这样.

 

settings.py :文件:

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

STATIC_URL = '/static/'

STATIC_ROOT = "/var/www/example.com/static/"


STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

关于STATIC_URL,STATIC_ROOT,STATICFILES_DIRS 的含义,请参见

http://blog.sina.com.cn/s/blog_6d710ea90101drct.html

这里不再累述

 

在template中对静态文件的引用方式:

 

{% load staticfiles %}

<link rel="stylesheet" type="text/css" href="{% static 'oak/css/bootstrap-cerulean.css' %}" />

 

 

 

执行:

$ python manage.py collectstatic

会将app里面的static文件copy到你指定的STATIC_ROOT里面:

前提:与app同级有static文件夹, 不然会报错.

 

 

我的apache2 配置:

WSGIScriptAlias / "/home/geiao/PycharmProjects/oakcloud/oakcloud/wsgi.py"
    <Directory "/home/geiao/PycharmProjects/oakcloud/oakcloud">
    Order deny,allow
        Allow from all
    </Directory>
    
    Alias /static /var/www/example.com/static
    <Directory /var/www/example.com/static>
        Order deny,allow
        Allow from all
    </Directory>

 

 

 

 

 

posted on 2014-03-14 16:58  Jghost  阅读(513)  评论(0编辑  收藏  举报