简单的配置static文件要比配置media文件要简便的多。今天仅仅介绍配置static文件,之后将学习介绍media文件。
今天介绍的static文件配置是在DEBUG模式,即开发模式下进行的配置,这里 DEBUG = True
配置settting.py文件
这里先建立一个变量SITE_ROOT,这里最终的值是否和原来文件中BASE_ROOT是否相同,还需要进行测试。
之后给静态文件变量赋值,告诉Django ,静态文件在哪里。
SITE_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)),'')
STAIC_ROOT = os.path.join(SITE_ROOT,'static')
STATIC_URL = '/static/'
#最后关键部分需要添加上STATICFILE_DIRS的配置
STATICFILES_DIRS = (
("css", os.path.join(STATIC_ROOT,'css')),
("js", os.path.join(STATIC_ROOT,'js')),
("images", os.path.join(STATIC_ROOT,'images')),
)
说到这里,我们需要知道文件的目录结构,结构如下:
myproject
----myproject
--------init.py
--------settings.py
--------urls.py
--------wsgi.py
----blog
--------init.py
--------models.py
--------views.py
--------test.py
----static
--------css
------------style.css
--------js
------------jquery.js
--------images
------------me.jpg
----media
--------upload
到这里staitc算是配置完成了,并不需要再urls.py里配置相关的东西,Django就会自动找到对的路径解析静态文件了,也是在配置上static比media少了一步。
在template里面使用静态文件
<!DOCTYPE html><html lang="zh-CN">
<head>
<meta charset=utf-8>
<title>staitc例子</title>
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/style.css" media="screen" />
<script type="text/javascript" src="{{STATIC_URL}}js/jquery.js"></script></head><body>
<img src="{{STATIC_URL}}images/me.jpg"" alt="img"></body>
<!--这里除了使用{STATIC_URL}之后,还可以直接使用路径,src = "/static/images/me.jpg"--></html>
如果说这是debug = true的条件下的配置那么在这里我们在正是SAE环境下,修改config.yaml文件
handlers:
- url: /static
static_dir: path/to/mysite/static