允许在没有导入所有应用的情况下运行Django静态文件命令。
项目描述
Django Staticfiles Noimport
django-staticfiles-import存在是为了允许Django的collectstatic管理命令在最小的环境变量下运行,以便在docker build步骤中运行,从而产生的容器是自包含的。
这种方法允许典型的运行时初始化验证所有必需的运行时环境变量是否已定义,并为仅包含collectstatic和findstatic命令的替代入口点。
具体来说,此项目允许Django应用程序具有static/目录,这些目录期望您使用默认启用的AppDirectoriesFinder。
需求与约束
使用此软件包需要接受一些在我们环境中可接受的约束
- 静态资源将在所有环境中使用相同的路径提供服务(即STATIC_URL不会按环境变化。)
- Django "应用"可能无法在应用初始化期间操纵任何静态文件处理行为。
- INSTALLED_APPS必须将应用名称作为字符串引用,而不是直接导入- AppConfig。
设置
- 确保您有一个os.environ无关的设置模块。- 这可以通过创建一个简单的settings/apps.py模块来实现,该模块由您的主设置导入,使用glob语法,例如:from .apps import *以及一个导入它的settings/static.py。
- 在那个设置链中的某个地方,您必须定义SECRET_KEY,这是必需的非静态文件相关设置。
 
- 这可以通过创建一个简单的
- 在您的STATICFILES_FINDERS设置中使用提供的staticfiles_noimport.finders.AppDirectoriesNoImportFinder。(请参阅包含的示例。)
- 直接使用 collectstatic和findstatic而不是使用典型的manage.py入口。为了使事物按预期工作,您需要注入静态特定的设置(例如,DJANGO_SETTINGS_MODULE=settings.static)。
示例用法
# settings/apps.py
INSTALLED_APPS = (
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.admin",
    ...
    ...
    "yourappone",
    "yourapptwo",
)
# settings/static.py
from .apps import *
STATIC_ROOT = "/static/foobar/"
STATIC_URL = "/static/foobar/"
STATICFILES_DIRS = (
    "/some/resolved/path/static",
)
STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "staticfiles_noimport.finders.AppDirectoriesNoImportFinder"
)
STATICFILES_STORAGE = "django.contrib.staticfiles.storage.ManifestStaticFilesStorage"
运行 collectstatic
$ DJANGO_SETTINGS_MODULE=myproject.settings.static collectstatic
          项目详情
    
       关闭
    
      
        
    
    
  
哈希值 for django_staticfiles_noimport-0.9-py3-none-any.whl
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 2914d6eafcd12a2ff72b112b55645ef6b5e99a34298927331cd6ec327bb37bfa | |
| MD5 | f6889f8d2c71bc095a42a3d0878bed76 | |
| BLAKE2b-256 | 8452c8888fccb4b415cae0b3ac47f286e5164994865eacefbb2d419fbfdc3737 |