• django settings.py STATICFILES_FINDERS 设置


    STATICFILES_FINDERS

    定义查找器后端以确保Django能够正确地定位和提供静态文件是很重要的.
    Django中的STATICFILES FINDERS设置是一个inder后端列表,它知道如何在不同的位置定位静态文件。
    它被Django的静态文件处理系统用来在开发和部署过程中查找和收集静态文件。

    默认情况下,STATICFILES_FINDERS设置包括两个查找器后端:

    STATICFILES_FINDERS = [
        'django.contrib.staticfiles.finders.FileSystemFinder',
        # 此查找器在STATICFILES_DIRS设置中指定的目录中查找静态文件。
        # 搜索应用程序目录之外的其他目录中的静态文件。
        # 当您拥有跨多个应用程序共享或位于自定义目录中的静态文件时,这非常有用。
        'django.contrib.staticfiles.finders.AppDirectoriesFinder',
        # 此查找器在INSTALLED_APPS设置中的每个应用程序的静态子目录中查找静态文件
        # 它在应用程序目录中搜索静态文件。
        # 这是单个应用程序中静态文件的默认查找器。
        # Add additional finder backends here if needed
        # 如果需要,请在此处添加其他查找器后端
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    添加一个自定义的查找器

    STATICFILES_FINDERS = [
        'django.contrib.staticfiles.finders.FileSystemFinder',
        'django.contrib.staticfiles.finders.AppDirectoriesFinder',
        'myapp.finders.MyCustomFinder',# 在myapp项目中创建finders.py文件 并且定义MyCustomFinder函数
        # 自定义查找器后端的具体实现取决于您的需求和项目的结构。
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    自定义查找器的使用方式

    from django.contrib.staticfiles.finders import BaseFinder
    
    class MyCustomFinder(BaseFinder):
        def find(self, path, all=False):
            # Implement your custom logic to locate the static file
            # You can use any strategy or algorithm to find the file
            # Return the absolute path of the file if found, or None if not found
    		# 实现自定义逻辑来定位静态文件
            # 您可以使用任何策略或算法来查找文件
            # 如果找到,则返回文件的绝对路径,如果未找到,则返回 None
            
            # Example implementation:
            if path == 'custom.css':
                return '/path/to/custom.css'
            elif path == 'custom.js':
                return '/path/to/custom.js'
            else:
                return None
    
        def list(self, ignore_patterns):
            # Implement your custom logic to list all the static files
            # Return a list of tuples containing the relative path and absolute path of each static file
            # 实现自定义逻辑,列出所有静态文件
            # 返回一个元组列表,其中包含每个静态文件的相对路径和绝对路径
    
            # Example implementation:
            return [
                ('custom.css', '/path/to/custom.css'),
                ('custom.js', '/path/to/custom.js'),
            ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  • 相关阅读:
    Vue3 - Pinia 状态管理,解构 store(Pinia storeToRefs API 详细使用教程)
    【Mybatis编程:查询相册数据列表】
    AI绘画部署及模型推荐和下载
    数据结构——线性表
    使用Python自动化收集和处理视频资源的教程
    阿里云 —— Windows下“阿里云音视频通信RTC“ 之 云端录制编译C++的SDK接口
    【原创工具】自定义系统右键菜单工具CustomContextMenu使用说明
    JVM参数配置
    【浏览器】主流浏览器伪元素一览
    利用opnet快速构建tree网络
  • 原文地址:https://blog.csdn.net/weixin_47021806/article/details/136440068