码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Django 访问静态文件的APP staticfiles


    Django 框架默认带的 APP:

        'django.contrib.staticfiles'

    Django文档中也写明了:
    如何管理静态文件(如图片、JavaScript、CSS) |姜戈 文档 |姜戈 (djangoproject.com)icon-default.png?t=N7T8https://docs.djangoproject.com/zh-hans/4.2/howto/static-files/

             Django 在处理静态文件时,会使用一个名为 STATICFILES_FINDERS 的设置(一个包含多个静态文件查找器类的列表)。Django 会使用这些查找器来查找静态文件。

    默认情况下,Django 会使用以下查找器:

    1. django.contrib.staticfiles.finders.FileSystemFinder
      这个查找器会在 STATICFILES_DIRS 设置中列出的目录中查找静态文件。
    2. django.contrib.staticfiles.finders.AppDirectoriesFinder
      这个查找器会在每个已安装的应用程序 APP 中查找 static 目录中查找静态文件。

    当 Django 需要查找静态文件时,会按照 STATICFILES_FINDERS 列表中的顺序,使用每个查找器来查找静态文件。如果找到了文件,就会停止查找,否则会继续使用下一个查找器。

            如果想自定义静态文件查找的方式,可以创建查找器类并将其添加到 STATICFILES_FINDERS 设置中。

            另外 Django Templates 和普通的静态文件区别:

    1. 用途不同:Django Templates 主要用于动态生成 HTML 页面,它可以根据数据库中的数据和用户请求中的参数来生成不同的页面内容。而静态文件则是指那些不需要动态生成的文件,例如 CSS、JavaScript、图片等。
    2. 文件格式不同:Django Templates 是一种特殊的文件格式,其中包含了一些特殊的语法和标签,可以用来在页面中插入动态内容。而静态文件则是一些普通的文件,例如 CSS 文件、JavaScript 文件、图片文件等。
    3. 处理方式不同:Django Templates 需要使用 Django 的模板引擎 来处理,将模板中的变量和标签替换为实际的内容,生成最终的 HTML 页面。而静态文件则可以直接被浏览器解析和处理。

            Django Templates 的作用主要是为了实现动态页面的生成,它可以根据数据库中的数据和用户请求中的参数来生成不同的页面内容。这对于需要根据用户身份、权限等因素来显示不同内容的 Web 应用程序非常有用。同时,Django Templates 还可以用来实现页面布局和组件化,将页面中的公共部分(例如头部、尾部等)抽象出来,以便于代码的重用和维护。

    django是如何让浏览器也可以访问服务器上的静态文件呢:

    Django --static 静态文件的配置(static_url/STATIC_ROOT/STATICFILES_DIRS) - Be-myself - 博客园 (cnblogs.com)icon-default.png?t=N7T8https://www.cnblogs.com/gengyufei/p/12632408.html

    配置问题排查

            print 出 STATICFILES_DIRS 与 Template 内容,核对是否正确;

            确认 index.html 是否可正常访问;

            确认 static 下资源是否可直接通过 URL 形式访问。

            正常情况下,静态文件引用的前端index.html中的引用资源除了开头“//”,是不会后续有额外的横杆出现,如果有请仔细检查配置。

            

  • 相关阅读:
    C++ STL --- vector的使用
    月薪10.8K,从销售客服转行软件测试斩获4份offer,所有的惊艳都来自长久的准备
    AUTOSAR知识点 之 Dem (三):基于ETAS工具ISOLAR-AB配置实现DEM分析
    【探花交友】阿里云OSS、百度人脸识别
    http和dubbo接口调用主动设置超时时间
    wsl和windows下编译C++以及函数重载和函数模板的问题记录
    《大数据》第七章 聚类 K-means算法 BFR算法 CURE算法
    冒泡排序(Bubble Sort)
    数据仓库-数仓架构
    Windows10上使用llama-recipes(LoRA)来对llama-2-7b做fine-tune
  • 原文地址:https://blog.csdn.net/lxd_max/article/details/133849080
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号