用于离线编码时缓存 CDN 文件的 Django 应用程序
项目描述
这个应用程序是为了帮助那些你无法上网但你想写一些 Django 代码的情况。用这个模板标签包围你的静态 CDN 引用(如 jquery 等),当你打开它时,URL 将从本地副本重写。
安装
在您的设置文件中,将“飞机”添加到您的settings.INSTALLED_APPS字段:
INSTALLED_APPS = (
...
'airplane',
)
同样在设置中,进行以下添加:
import airplane
STATICFILES_DIRS = (
airplane.cache_path(),
)
AIRPLANE_MODE = airplane.BUILD_CACHE
#AIRPLANE_MODE = airplane.USE_CACHE
#AIRPLANE_MODE = airplane.AUTO_CACHE
现在在您的模板中使用飞机标签
{% load airplanetags %}
<html>
<head>
<link rel=<s>"stylesheet"</s>
href=<s>"{% airplane 'https://maxcdn.bootstrapcdn.com/bootstrap.min.css' %}"</s>>
</head>
</html>
将AIRPLANE_MODE设置更改为plane.USE_CACHE并且随后对{% plane %}标记的调用将返回对本地缓存版本的引用。
设置
Airplane 仅在DEBUG=True并且您将 AIRPLANE_MODE值设置为plane.BUILD_CACHE、 airplane.USE_CACHE或plane.AUTO_CACHE时才会执行某些操作。如果不满足这些条件之一,则标签仅返回传入的值。
例如,如果DEBUG=False并且您的模板包含:
<link rel=<s>"stylesheet"</s>
href=<s>"{% airplane 'https://maxcdn.bootstrapcdn.com/bootstrap.min.css' %}"</s>>
然后上面的代码片段呈现为:
<link rel=<s>"stylesheet"</s>
href=<s>"https://maxcdn.bootstrapcdn.com/bootstrap.min.css"</s>>
当AIRPLANE_MODE设置为plane.BUILD_CACHE时,将获取传入的任何 URL,并将其内容添加到本地缓存中。默认的本地缓存是.airport_cache相对于项目的基本目录。
您可以通过设置AIRPLANE_CACHE来更改缓存的位置。该设置接受完全限定的路径或相对于项目基目录的路径。
# settings.py
AIRPLANE_CACHE = /foo/bar/cache # fully qualified
# or
AIRPLANE_CACHE = my_cache # relative to settings.BASE_DIR
# or nothing, defaults to settings.BASEDIR + '.airplane_cache'
缓存所有正在使用的文件后,将AIRPLANE_MODE切换为 plane.USE_CACHE。现在所有 URL 都被重写以指向本地缓存的内容。
或者,您可以将AIRPLANE_MODE设置为plane.AUTO_CACHE,第一次调用将缓存文件,后续调用将使用缓存的副本。
命令
以下 django 命令随飞机一起提供。
航空资讯
$ ./manage.py airinfo
Cache mode: AUTO_CACHE
Cache directory: /Users/foo/sample_site/.airplane_cache
Cache contents:
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
此命令不带参数并显示有关缓存的信息。显示当前模式、目录路径和缓存的任何项目。
气垫
./manage.py aircache https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css
此命令将单个 URL 作为参数并缓存 URL 的内容。
无架构 URL
由于飞机是一个模板标签库,它在执行时无权访问请求对象。为了允许无模式 URL,如果 URL 中没有给出模式,代码会假设模式是“https”。
限制
该库的目的是在您使用 Django 调试服务器以及无法轻松访问网络的情况下为您提供帮助。缓存文件使用 django 静态服务器代码提供服务,这意味着您受到它可以提供的文件类型的限制。静态服务器根据文件扩展名猜测文件的 mimetype。飞机天真地复制文件的扩展名,因此缓存的文件具有相同的结尾。这意味着带有奇怪扩展名的 URL 或静态服务无法猜测 mimetype 的 URL 将导致问题。不建议将 django-airplane 用于不以典型扩展名结尾的文件,例如“.css”、“.js”、“.jpg”、“.png”或“.gif”。
支持
django-airplane 已经过测试:
Python 3.6、3.7 和 Django 2.2
Python 3.6、3.7 和 Django 3.0
文档
项目详情
django_airplane -1.1.0-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | be0c6d267a17c77c5def3e933aa09100664cf4b74e4c17ba1a34e31ce3372285 |
|
| MD5 | 32b7755eb052ff2d6c8597adf28c3473 |
|
| 布莱克2-256 | 4cef84cdeb65d7e08e100d81a91aeb032781dba17c27dce89c2226e31efa3f12 |