• 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
  • 相关阅读:
    matlab中filter帮助文档中“对矩阵行进行滤波”的解释
    OpenHarmony Meetup深圳站招募令
    【ACM】简单题(4)
    什么是线程?为什么需要线程?和进程的区别?
    全IB学校:果树林学校Aspengrove School
    Web前端高频面试题解析(javascript篇)--- 每日十题(6)
    php使用正则表达式和翻译字典json文件做翻译
    蒋鑫鸿:黄金1726已短期见顶正将逐步打压,油破底延续
    2023-9-30 JZ34 二叉树中和为某一值的路径
    ThreadLocal InheritableThreadLocal TransmittableThreadLocal简单使用
  • 原文地址:https://blog.csdn.net/weixin_47021806/article/details/136440068