使用Flask和flask-assets (来自webassets),我为css压缩器following the documentation编写了自己的自定义过滤器。它似乎不起作用:
from csscompressor import compress
from flask_assets import Bundle
from webassets.filter import Filter, register_filter
class NoopFilter(Filter):
name = 'csscompressor'
print("noopfilter")
def output(self, _in, out, **kwargs):
print("output")
def input(self, _in, out, **kwargs):
print("input")
register_filter(NoopFilter)
bundles = {
'home_css': Bundle(
'css/main.css',
'css/forms.css',
output='gen/home.css',
filters='csscompressor'
)该类在启动时被调用两次,过滤器是通过它的名称找到的,但input()或output()似乎从未被调用过。css文件被创建,但显然没有任何压缩。有没有人有这方面的经验?
发布于 2019-07-27 07:01:41
显然,这是一个缓存问题。更改筛选器名称可使其正常工作。希望这能帮助一些人在一些kB上拔出他们的头发。
发布于 2020-12-08 05:06:26
使用CSS压缩器包压缩CSS的示例(pip install CSS压缩器)
from csscompressor import compress
from flask_assets import Bundle
from webassets.filter import Filter, register_filter
class NoopFilter(Filter):
name = 'css_compress'
def output(self, _in, out, **kwargs):
css = compress(_in.read())
out.write(css)
def input(self, _in, out, **kwargs):
css = compress(_in.read())
out.write(css)
register_filter(NoopFilter)
bundles = {
'app_css': Bundle(
'css/responsive.css',
'css/ads.css',
filters='css_compress',
output='all/app.css'
),https://stackoverflow.com/questions/57227776
复制相似问题