Django静态资源

一、静态资源的分类

1、开发所需要的,css,image,js

- 根目录的 /static/
- 已经app目录下载 /static/ 文件夹下

2、媒体文件,用户上传的数据(Excel,PDF,video)

用户上传的数据也可以上传到文件服务器,如顺丰云的oss

- 根目录的 /media/

二、静态文件

1、项目结构

D:\TMP\DEMO\
├─app01   # app,内部结构略
|  └─static
|      └─index.css
├─demo
|  └─settings.py
├─static
|  ├─jquery-2.2.3.min.js
|  ├─a.jpg
│  └─bootstrap
│      ├─css
       |  └─bootstrap.css
│      └─js
|	  └─bootstrap.js
└─templates
   ├─books.html
   └─form.html

2、静态文件的引入

a、引入顺序,先找根目录下的static文件,如果没有再找APP目录下的static文件

import os

INSTALLED_APPS = [
    # 这个app必须写,不写前端访问404
    'django.contrib.staticfiles'
]

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'  # 通过别名指向STATICFILES_DIRS目录,当然,别名也可以修改
STATICFILES_DIRS = [  # 列表或者元组都行
    os.path.join(BASE_DIR, 'static'),
    os.path.join(BASE_DIR, 'app01', 'static')   # 你也可以配置多个静态文件目录,只需拼上路径就好了
]

b、多app开发:各自app的静态文件放在各自 /static/app名字/。。。下,一般会在APP目录下的static目录下嵌套一层,APP名字的目录,引入静态文件加上目录名称

在这里插入图片描述

在这里插入图片描述
禁止

<img src="/static/api/1.png">

建议

{% load static %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>登录页面</h1>
<a href="/xxx/xxxxx/">调换dao xx</a>
<a href="{% url 'login' %}">跳转</a>
<img src="{% static 'api/1.png' %}">
</body>
</html>

3、媒体文件

a、访问媒体文件时要在路由里面加上媒体文件的配置

b、Urls.py文件

from django.contrib import admin
from django.urls import path, re_path, include
from django.conf.urls.static import static
from django.conf import settings

from apps.api import views


# 很多功能,很多URL
urlpatterns = [
    path('api/', include('apps.api.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值