Autoprefixer过滤器在Flask资产中不工作

2024-06-25 22:44:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图按照Flask_Assets documentation中的说明让autoprefixer过滤器与flask_资产一起工作,但它似乎没有应用过滤器。这是我的代码:

# construct flask app object
from flask import Flask, render_template_string
flask_args = { 'import_name': __name__ }
flask_app = Flask(**flask_args)

from flask_assets import Environment, Bundle
assets = Environment(flask_app)
assets.config['AUTOPREFIXER_BIN'] = 'postcss'
assets.config['AUTOPREFIXER_BROWSERS'] = [ '> 1%' ]
css_min = Bundle('../styles/mycss.css', filters='autoprefixer', output='styles/test.css')
assets.register('css_assets', css_min)

@flask_app.route('/')
def landing_page():
    html = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\
            <head>{% assets "css_assets" %}\
            <link rel="stylesheet" href="{{ ASSET_URL }}" type="text/css">\
            {% endassets %}\
            <title>Hello</title>\
            </head>\
            <h1>Hello World</h1>\
            <p>Just a test of flask</p>'
    return render_template_string(html), 200

if __name__ == '__main__':
    flask_app.run(host='0.0.0.0', port=5000)

我已经能够成功地应用cssmin、pyscss、uglifyjs和jsmin过滤器。我还可以在命令行上运行autoprefixer来成功编译转换后的输出:

^{pr2}$

但是,当尝试通过flask_资产注册运行autoprefixer时,该进程既不会抛出错误,也不会花费所需的时间进行编译。它确实生成了输出文件,但是当我检查结果文件时,没有应用任何前缀。在

更新:每当试图为任何筛选器配置选项时,似乎都会出现此问题。我也没能让uglifyjs接受“uglifyjs_EXTRA_ARGS”,或者让pyscss过滤器采用一种使用“pyscs_style”的新样式。我已经尝试使用将这些配置设置为环境变量操作系统环境['AUTOPREFIXER_BIN']以及试图通过烧瓶.config['AUTOPREFIXER_BIN']。但在运行过滤器时,没有应用任何配置设置。我也不清楚代码本身的配置选项是由Bundle或Environment构造的。在

One SO post声称找到了一种让配置设置工作的方法,但是这篇文章并没有展示flask_资产需要如何设置才能接受这些选项的整个工作流程。在

也许有人能帮我理解我做错了什么?在


Tags: nameimportconfigapp过滤器flaskbinenvironment
1条回答
网友
1楼 · 发布于 2024-06-25 22:44:46

自动复印机:

您的代码没有任何问题1。您只是没有为最新版本的Autoprefixer使用正确的筛选器。如果您查看该链接中发布的历史记录,从版本6.0.0开始,它就开始使用。您的代码适用于6.0.0以上的版本。在

Webassets通过提供autoprefixer6过滤器,为after 6.0.0版本提供了支持。在

因此,您只需在初始化捆绑包时更改筛选器,如下所示:

css_min = Bundle('../styles/mycss.css', filters='autoprefixer6', output='styles/test.css')

其他过滤器配置:

不要使用os.environ,这不是为Flask和设置配置变量的方法。大多数情况下,flask和Config的扩展名都是通过单独的配置来完成的。扩展将从flask的配置中获取配置选项。在

根据您使用的扩展名,您也可以像以前那样单独设置配置,但从目前为止我看到的情况来看,很少使用这种配置。在

请检查烧瓶的Configuration related documentation以获得一些关于如何“正确”设置应用程序配置的好例子。在


^{pr2}$

请记住,如果源css/js没有更改,请清除以前生成的文件,即删除输出文件和.webassets-cache文件夹。在

1代码样式和格式惯例除外!

相关问题 更多 >