未知
项目描述
当您需要缩小静态文件以供生产使用时,这个小应用程序有助于管理您的静态文件。此外,它能够对资产进行版本控制,这样每当您需要更改静态文件时,用户就不会从浏览器缓存中获得旧文件。
安装
标准 Django 方式:
pip install django-versioned-static
添加到您的INSTALLED_APPS:
INSTALLED_APPS = (
..
..,
'versioned_static',
...
)
自己配置资产:
STATICS_ASSETS = {
'css': {
'css/mycoolproject.css': {
'media': ('screen', 'projection', 'tv'),
'files': ('css/jquery-ui-1.8.18.custom.css', 'css/style.css',),
'version': 1
},
'css/print.css': {
'media': ('print',),
'files': ('css/print.css',),
'version': 1
}
},
'js': {
'js/mycoolproject.js': {
'files': ('js/jquery-1.7.1.min.js',
'js/main.js'),
'version': 1
}
}
}
完毕!
模板中的使用
很简单。使用资产模板标签。给它静态类型(css 或 js)和基本 css 别名。它将直接为您生成所有必要的 HTML:
{% load versioned_static_tags %}
{% asset "css" "css/mycoolproject.css" %}
{% asset "css" "css/print.css" %}
{% asset "js" "js/mycoolproject.js" %}
它需要您在帐户中的设置。在开发中(当DEBUG = True时),您将获得未版本化和未缩小的静态文件。当您关闭调试时,您将获得版本化资产链接。
结果 DEBUG=True:
<link type="text/css" rel="stylesheet" href="/static/css/jquery-ui-1.8.18.custom.css" media="screen,projection,tv"/> <link type="text/css" rel="stylesheet" href="/static/css/style.css" media="screen,projection,tv"/> <link type="text/css" rel="stylesheet" href="/static/css/print.css" media="print"/> <script type="text/javascript" src="/static/js/jquery-1.7.1.min.js"></script> <script type="text/javascript" src="/static/js/main.js"></script>
结果 DEBUG=False:
<link type="text/css" rel="stylesheet" href="/static/css/mycoolproject.1.css" media="screen,projection,tv"/> <link type="text/css" rel="stylesheet" href="/static/css/print.1.css" media="print"/> <script type="text/javascript" src="/static/js/mycoolproject.1.js"></script>
缩小文件
此应用程序具有简单的管理命令,可帮助您创建用于生产的缩小文件。用法是这样的:
django-admin.py minifystatics [(CSS/JS) ASSET_FILE]
先前场景的真实示例:
django-admin.py minifystatics css css/print.css
如果要在应用程序设置中生成所有文件,只需运行不带任何参数的命令:
django-admin.py minifystatics
默认情况下,该命令将在您的STATIC_ROOT中查找(因此请确保在 minify 命令之前运行 collectstatic )并将其用作根路径。
笔记
django-versioned-static 在内部使用 YUI 库来缩小 CSS/JS 资产。