Django 06
在网站设计中我们经常需要处理静态文件, 比如静态的HTML页面, css文件, javascript文件等. 客户请求这些文件时, 我们不需要使用views函数来处理, 让服务器自动处理.
开发阶段
在settings中, 我们配置STATIC_URL
告诉django以某前缀的URL是请求静态文件的.
STATIC_URL = '/static/'
比如在服务器端文件系统中某目录存储了如下的静态文件:
server_static_dir/
├── css
│ └── default.css
├── javascrpit
│ └── app.js
└── readme.txt
如果客户想获取这些文件, 应该使用这样的url访问, 也就是url中除去STATIC_URL剩下的部分是服务器文件系统的某个相对路径.
http://www.example.com/static/css/default.css
http://www.example.com/static/javascript/app.js
http://www.example.com/static/readme.txt
在开发阶段, django.contrib.staticfiles会帮我们搜索静态文件, 他会在如下位置搜索:
1. 每个应用下的static目录:
blog/
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ └── __init__.py
├── models.py
├── static
│ └── blog
│ ├── github-markdown.css
│ └── blog.js
├── tests.py
└── views.py
- settings.STATICFILES_DIRS中的目录:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
'/var/www/html'
]