/django-staticfiles-downloader

Django staticfiles extension to download third-party static files

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

django-staticfiles-downloader

django-staticfiles-downloader provides staticfiles_downloader.DownloaderFinder, an extension of django.contrib.staticfiles, which allows you to specify static files with urls and optionaly checksum in your Django application or Django project settings. This is particularly useful, when using third-party static files, if you don't want to either include the files in your project nor depend on CDN in runtime.

The static files are collected with python manage.py collectstatic.

Installation

pip install  django-staticfiles-downloader

Configuration

Add staticfiles_downloader.DownloaderFinder to settings.STATICFILES_FINDERS:

STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'staticfiles_downloader.DownloaderFinder',
]

Define static files urls in your Django application

# your_app/__init__.py
staticfiles_urls = {
    # use only url
    'my_app/js/jquery-3.2.1.min.js': 'https://code.jquery.com/jquery-3.2.1.min.js',
    # or use url and checksum
    'my_app/js/jquery-2.2.4.min.js': (
        'https://code.jquery.com/jquery-2.2.4.min.js',
        'sha384',
        'rY/jv8mMhqDabXSo+UCggqKtdmBfd3qC2/KvyTDNQ6PcUJXaxK1tMepoQda4g5vB',
    ),
}

Define static files urls in your Django project settings

# your_project/settings.py
STATICFILES_URLS = {
    # use only url
    'js/jquery-3.2.1.min.js': 'https://code.jquery.com/jquery-3.2.1.min.js',
    # or use url and checksum
    'js/jquery-2.2.4.min.js': (
        'https://code.jquery.com/jquery-2.2.4.min.js',
        'sha384',
        'rY/jv8mMhqDabXSo+UCggqKtdmBfd3qC2/KvyTDNQ6PcUJXaxK1tMepoQda4g5vB',
    ),
}