一、简介
Django的项目中,静态文件static在根目录下,或者在应用下,这两种方式引入的区别。以Django2.0+实验一下。
static文件夹包含css,js,img等文件夹
setting配置文件均只配置了
STATIC_URL = '/static/'
二、static文件夹在根目录下
1、引入css文件的两种方式:
第一种:
{% load static %}
<link type="text/css" rel="stylesheet" href="{% static 'css/common.css' %}">
第二种:
<link type="text/css" rel="stylesheet" href="/static/css/common.css ">
2、引入js的两种方法:
第一种:
{% load static %}
<script type="text/javascript" charset="utf-8" src="{% static 'nav.js' %}"></script>
第二种:
<script type="text/javascript" charset="utf-8" src="/static/js/nav.js"></script>
三、static文件夹在应用下,根目录下也有static文件夹及其子文件夹css,js等:
1、引入js文件的方法:
方法一:
{% load static %}
<script src="{% static '/js/jquery.min.js' %}"></script>
方法二:
这么写页面提示是can not resolve directory,但是却能够正常找到,具体不清楚原因
<script src="/static/js/jquery.min.js"></script>
加上应用路径这么写页面不报错,但是却找不到的 <script src="/backadmin/static/js/jquery.min.js"></script>
真正页面写的不报错,结果却是找不到的
经过试验,上网查找,需要在settings里添加如下命令,即将你的应用下的static文件夹路径添加到里边,写完整的路径的时候就不会提示can not resolve directory,且能够正常找到
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static').replace('\\', '/'),
os.path.join(BASE_DIR, '/backadmin/static').replace('\\', '/'),
os.path.join(BASE_DIR, '/crm/static').replace('\\', '/'),
]
2、引入js文件的方法
方法一:同上
方法二:同上