一、簡介
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文件的方法
方法一:同上
方法二:同上