对于django项目,有一个名为django-compressor的强大工具。它将compress
模板标记下的所有js或css文件合并到单个缓存文件中,如下所示:
{% load compress %}
{% compress css %}
<link rel="stylesheet" href="/static/css/one.css" type="text/css" charset="utf-8">
<style type="text/css">p { border:5px solid green;}</style>
<link rel="stylesheet" href="/static/css/two.css" type="text/css" charset="utf-8">
{% endcompress %}
我想知道龙卷风项目是否有这样的东西?或者也许是任何解决方案/替代解决方案?
我在github上找到了this项目,但它已不再维护了。
答案 0 :(得分:7)
看看tornado_utils,它应该做你想要的。特别要看tornado_static.py
tornado_static是一个用于在Tornado Web中显示静态资源的模块 应用
它可以处理合并,压缩和赋予URL理想的重命名 适用于积极的HTTP缓存。
答案 1 :(得分:3)
到目前为止,我见过的最佳选择是 WebAssets 。
从文档中: webassets是一个通用的,独立于依赖的库,用于管理 您的Web应用程序的资产。它可以合并和压缩你的CSS 和JavaScript文件,支持各种不同的过滤器, 并支持使用CoffeeScript或Sass等编译器。
您可以在带有龙卷风的独立模式中使用它(请参阅specific documentation)。
设置简单明了:
from webassets import Environment
static_directory = "../static"
output_directory = "/static"
my_env = Environment(static_directory, output_directory)
当然,你可以更好地定制它。其余部分在文档中进行了很好的解释。
主要功能:
正确配置后模板(此处为Jinja2)的示例:
# css
{% assets filters="cssmin", output="css/compiled-layout.css",
"css/custom.css",
"css/bootstrap-datepicker.css",
"css/typeahead.css" %}
<link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}">
{% endassets %}
# js
{% assets filters="jsmin", output="js/lib/compiled-libs.js",
"js/lib/jquery-2.1.1.min.js",
"js/lib/jquery-ui.min.js",
"js/lib/bootstrap.min.js",
"js/lib/bootstrap-datepicker.js",
"js/lib/d3.min.js",
"js/lib/typeahead.bundle.min.js",
"js/lib/moment.min.js",
"js/lib/handlebars-v2.0.0.js",
"js/global.js" %}
<script type="text/javascript" src="{{ ASSET_URL }}"></script>
{% endassets %}
我一直在使用与Flask捆绑的WebAssets一年没有麻烦,它非常可靠,而且维护得很好:它已存在好几年了,last commit to date was yesterday。
答案 2 :(得分:2)
据我所知,在开源tornado
项目中,没有标准和规范的方法在“龙卷风世界”中进行静态文件缩小和压缩。
我见过的不同选择是:
tornado_utils
(见其他答案)torminify
module jsmin.c
端口到python,请参阅:
slimit.minify()
只有前两个选项是针对龙卷风的。其他工具需要与Tornado模板渲染和手动静态文件服务机制捆绑在一起。