从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>

然后,您有两个选项:

  1. 要使用CDN,请在Django设置中输入VENDOR_CDN = True,供应商标记将使用设置中的url替换为<link><script>标记

  2. 要使用本地副本,请在Django设置中放入VENDOR_CDN = False(或根本不放入任何内容),供应商标记将使用STATIC_PATH替换为<link><script>标记文件可以下载:

    python ./manage.py download_vendor_files
    

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将jaxb插件扩展与gradlejaxbplugin一起使用   java Hibernate列表<Object[]>到特定对象   java使用多态性显示arraylist的输出   java水平堆叠卡,带有一定偏移量   java错误:找不到符号方法liesInt()   java客户机/服务器文件收发中的多线程流管理   在java中可以基于访问重载方法吗?   包含空元素的java排序数组   swing Java按钮/网格布局   java BottomNavigationView getmaxitemcount   java空指针异常字符串生成器   java Xamarin升级导致“类文件版本错误52.0,应为50.0”错误   java我正在尝试打印它,而不只是对每一行进行println   Tomcat7中的java是否需要复制上下文。将xml转换为conf/Catalina/locahost以使其生效   带有注入服务的java REST端点在何处引发自定义WebServiceException?   在Java中使用GPS数据   java如何将JFreeChart ChartPanel导出到包含添加的CrosshairOverlay的图像对象?   内置Eclipse期间的Java 8堆栈溢出   java在GWT编译的JavaScript中如何表示BigDecimal