django web 模板静态文件加载记录
2019-03-10 本文已影响0人
wowshiwoniu
工作以来,一直在用django框架写接口,对于django的前端模板文件接触不多,最近在学习使用django快速搭建简单的网站,因此记录在这方面踩得坑。
默认工程结构:
├── README.md
├── catalog
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ ├── models.py
│ ├── static
│ │ ├── catalog
│ │ │ └── css
│ │ │ └── styles.css
│ │ └── images
│ │ └── local_library_model_uml.png
│ ├── templates
│ │ ├── base_generic.html
│ │ ├── catalog
│ │ │ ├── book_list.html
│ │ └── index.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── db.sqlite3
├── gunicorn.conf.py
├── manage.py
├── project
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── requirements.txt
├── static
│ ├── catalog
│ │ └── css
│ │ └── styles.css
└── templates
└── registration
├── logged_out.html
├── login.html
配置文件 settings.py
- 默认配置
STATIC_URL = '/static/'
这个static 是在Django 具体APP下建立的static目录,用来存放静态资源,在开发环境下,DEBUG=True
的时候,django会自动按照配置去加载对应app目录下的静态资源文件,便于调试,当debug更改为False的时候,就无法自动加载了。 - 资源搜集文件目录
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
这个目录就是方便我们解决上面开发环境的方案,这里只是一个示例,我们可以任意指定后面的目录,通过执行python manage.py collectstatic
命令,可以搜集当前项目所用到的静态资源文件到上面的指定目录,然后我们可以通过nginx
或者其它的服务器来获取此静态资源文件。
1 server {
2 listen 20000;
3 server_name localhost;
4 location /static {
5 alias /Users/xxx/PycharmProjects/webProj/static;
6 }
7 location / {
8 proxy_set_header Host $host;
9 proxy_pass http://localhost:8000;
10 }
11 }
访问:http://127.0.0.1:20000
即可反向代理访问到我们的项目,同时静态资源也被正确加载。