python Django框架下,不同路径下,html页面引入静态static文件的方法

一、简介

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文件的方法

方法一:同上

方法二:同上

原文地址:https://www.cnblogs.com/realizetomoney/p/13928501.html