完整电商项目--django项目配置(4):配置前端静态文件及一些小技巧

配置静态文件

  • 需要在项目目录下创建一个 static 的文件夹。
    • 包括
    • (1) css 文件夹
    • (2) images 文件夹
    • (3) js 文件夹
    • (4)还有直接在static 目录下存储 静态页面。
    • 注释: 我们采用这样的集中处理方式。并没有将 每个应用下需要用到的静态文件定义到指定应用目录下。
      在这里插入图片描述
  • 阅读文档,我们发现了,静态文件和 templates 是类似的查找方式。
    在这里插入图片描述
  • 根据描述, STATICFILES_FINDERS 设置中包含多个 查找器(用来查找静态文件),我们进入到里面看看:
    在这里插入图片描述
    我们知道有一个 默认查找器 会深入到 应用的目录中查找 static目录找寻对应的静态文件。
  • 根据我们上面做的,是要进行 集中处理。所以就有了下面的操作。我们查找对应的 文档首页下的静态文件一章,有这些参数介绍:
    在这里插入图片描述
  • 分别介绍他们的作用:
    • STATIC_ROOT: 当你设置中DEBUG为True时,django会自动为你静态文件代理,不过当DEBUG为False时,意味着你要进入生产环境,那么,你就必须使用STATIC_ROOT来指明你的静态文件在哪里,就像MEDIA_ROOT一样
      在这里插入图片描述
      补充:
      在这里插入图片描述

    • STATIC_URL: 用于静态文件的前缀,当访问的资源以 此设置的前缀开头,证明是静态文件,将会到指定的静态文件中去查找。
      在这里插入图片描述
      以此图片为例子, 访问/static/资源名的方式,便可以从 下面介绍的STATICFILES_DIRS 中(或再次进入app内部查找)访问到静态文件,当然这个 /static/不是固定的,可以起其他名字

    • STATICFILES_DIRS:定义查找静态文件的地方。django查找静态文件是惰性查找,查找到第一个,就停止查找了。
      在这里插入图片描述

  • 下面还有一个 STATICFILES_STORAGE:这是用来收集静态文件时使用的文件存储引擎
    在这里插入图片描述
这就是静态文件管理的一些相关信息,下面是代码:

在这里插入图片描述

  • 我们只设置了两个参数,因为还在测试,debug阶段。还未到真正的上线部署,生产环境。

配置文件(settings)的管理

  • 正如上面所说的,我们应该区分产品的不同时期,我们所要使用的 配置文件理应不同,这里就是来做一下区分。

  • 首先,我们在原来的settings文件目录下,创建一个settings文件夹, 将我们的settings文件移进去,并改名为 dev.py ,表示我们的项目在开发阶段。当上线部署时,可再将文件复制一份,进行更改,作为生产环境中使用!
    在这里插入图片描述

  • 当然,这个操作更改了配置文件的位置。所以我们要进行响应的调整。

  • 首先,要知道我们的BASE_DIR 是根据我们的 dev.py 文件进行计算的。先来理解这个

'''
__file__ 表示当前文件名:dev.py
os.path.abspath(__file__))表示当前文件的 绝对路径
dirname() 寻找上级目录
'''

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 根据上面的解释不难知道, BASE_DIR就是我们的manage.py所在的路径!

#但当我们将原先的settings文件,移入文件夹之后,其路径就会改变,代表的是settings文件夹下面的目录~

#所以我们只需要,加一层dirname()函数,使它找到上级目录就行了(manage.py对应的路径)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  • 另外需要经 manage.py 中的环境配置文件路径更改一下:
    在这里插入图片描述

另一个类似的地方:添加应用的导包路径

  • 我们将所有应用归于一个文件夹中方便管理
    在这里插入图片描述
    但此时,在INSTALLED_APPS中注册应用时,必须繁琐的加上apps文件夹的路径,为解决这个问题:
# 构造apps的路径,便于进行应用注册
import sys  # 用于操作python的模块
# sys.path  这是一个导入包的路径

# 将指定应用的导包路径添加到 sys.path 里面
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

这是便可以像以前一样添加注册应用了!

over!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值