django指定js、CSS、img目录

除了由服务器生成的HTML文件外,WEB应用一般需要提供一些其它的必要文件,比如图片文件、JavaScript脚本和CSS样式表等等,用来为用户呈现出一个完整的网页。在Django中,我们将这些文件统称为“静态文件”,因为这些文件的内容基本是固定不变的,不需要动态生成。

使用静态文件

首先在你的app目录中创建一个static目录。Django将在那里查找静态文件,这与Django在app/templates/中寻找对应的模板文件的方式是一致的。

静态文件的命名空间:

与模板类似,我们可以将静态文件直接放在app/static(而不是创建另外一个app 子目录),但实际上这是一个坏主意。Django将使用它所找到的第一个匹配到的静态文件,如果在你的不同应用中存在两个同名的静态文件,Django将无法区分它们。我们需要告诉Django该使用其中的哪一个,最简单的方法就是为它们添加命名空间。也就是说,将这些静态文件放进以它们所在的应用的名字同名的另外一个子目录下。白话讲:多建一层与应用同名的子目录,即–> app/static/app/)

PS:良好的目录结构是每个应用都应该创建自己的urls、forms、views、models、templates和static,每个templates包含一个与应用同名的子目录,每个static也包含一个与应用同名的子目录。

使用方法

  • app 指定 js 文件
# 默认settings.py文件,不用修改
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/

STATIC_URL = '/static/'
  • 新建目录static/app/

在app目录下,新建static/app目录,其中static应与templates目录同级!!,如,应用sign目录下,新建 static/sign/目录,将CSS文件、js文件、img文件放到static/sign/目录下

  • 导入路径
# templates/index.html
{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'sign/css/layui.css' %}"  media="all">
<script src="{% static 'sign/layui.js' %}" charset="utf-8"></script>
  • 效果
    • 服务器绝对路径(项目BMS,应用sign)
/BMS/sign/static/sign/css/layui.css
    • 网页访问返回路径
127.0.0.1:8001/static/sign/css/layui.css
原创文章 149 获赞 338 访问量 28万+

猜你喜欢

转载自blog.csdn.net/Sunny_Future/article/details/105756456