从cdn下载css和js供应商文件并在本地托管它们的一个小扩展。
django-vendor-files的Python项目详细描述
Django下载供应商文件
设置
使用pip安装:
pip install django-vendor-files
在django设置中将vendor_files
添加到INSTALLED_APPS
:
INSTALLED_APPS=(...'vendor_files',)
将vendor
目录放在django设置中的STATICFILES_DIRS
中:
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'vendor/'),
...
)
将VENDOR
设置添加到Django设置中,并使用URL和SNI添加供应商文件,例如:
VENDOR={'jquery':{'url':'https://code.jquery.com/','js':[{'path':'jquery-3.2.1.min.js','sri':'sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=',}]},'bootstrap':{'url':'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/','js':[{'path':'js/bootstrap.min.js','sri':'sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa',}],'css':[{'path':'css/bootstrap.min.css','sri':'sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u',}]}}
用法
把{% load vendor_tags %}
放在django模板的顶部和vendor标记,例如:{% vendor 'jquery' %}
,放在html中的某个位置:
{% load staticfiles %} {% load vendor_tags %} <!DOCTYPE html><html><head><title>{{ request.site.name }}</title> ... {% vendor 'jquery' %} {% vendor 'bootstrap' %} </head>
然后,您有两个选项:
要使用CDN,请在Django设置中输入
VENDOR_CDN = True
,供应商标记将使用设置中的url替换为<link>
或<script>
标记要使用本地副本,请在Django设置中放入
VENDOR_CDN = False
(或根本不放入任何内容),供应商标记将使用STATIC_PATH
替换为<link>
或<script>
标记文件可以下载:python ./manage.py download_vendor_files