从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第三方库


热门话题
JavaCenter是JavaFX2中不可执行的窗格   java Docker将容器连接到本地数据库   java无法通过Spring从Redis获得正确的值   java为什么要将数组转换为列表再转换为数组   Java泛型在方法中放入字符串或整数参数   在Cloud Bigtable SDK中找不到java类   java Mavensiteplugin无法加载生成的源(Jaxb)   java GWT序列化和Appengine通道Api   PrintWriter out=new PrintWriter(sWriter)和PrintWriter out=response之间的java差异。getWriter()   空手道DSL中的javascript,在java参数调用中传递变量时如何转义单引号   windows 64位java可以与32位tomcat一起使用   为for循环| Java输入参数   java您可以更改SWT选项卡项的背景和/或前景颜色吗?   用java生成6位pin码   java如何从另一个通量中排除通量中的所有元素   java无法调用“javafx.scene.control.ComboBox.getItems()”,因为“Controller.getMyBox()”的返回值为null   将Java字符串与数组匹配时出现问题   java如何使用HttpsUrlConnection对SSL连接使用代理身份验证?   java如何检查XML元素是否包含CDATA?