无法使用烧瓶资产从 sass 文件生成 all.css 文件

Cant generate all.css file from sass files with flask-assets

我厌倦了在我的 Flask 应用程序中使用 css,所以我决定使用 Flask 资产 https://github.com/miracle2k/flask-assets 转移到 scss。 我在我的 app.py 文件中添加了这个:

from flask_assets import Environment, Bundle

assets = Environment(app)
assets.debug = True
assets.url = app.static_url_path
scss = Bundle('sass/foo.scss', 'sass/bar.scss', filters='pyscss', output='gen/all.css')
assets.register('scss_all', scss)

如果我理解正确,这些行应该检查我的 static/sass 文件夹并生成一个带有单个 all.css 缩小文件的 gen 文件夹,对吗? 我还在我的静态资产文件夹中创建了一个 sass 文件夹,并在其中创建了 foo.scss 文件,并使用一些代码对其进行了测试。 但是,当我启动该应用程序时,没有生成任何内容,也没有收到任何错误。我在这里做错了什么?

这是我如何让它工作的。

这是我的项目目录在生成任何内容之前的屏幕截图:

接下来,我确保安装了以下内容:

pip install flask-assets

pip install pyscss (this is your filter in the filters='pyscss' section)

我的代码设置如下:

from flask import Flask, render_template
from flask_assets import Environment, Bundle

app = Flask(__name__)

assets = Environment(app)
assets.url = app.static_url_path
assets.debug = True

scss = Bundle('sass/foo.scss', 'sass/bar.scss', filters='pyscss', output='gen/all.css')
assets.register('scss_all', scss)


@app.route('/')
def hello_world():
    return render_template('index.html')


if __name__ == '__main__':
    app.run()

和 index.html:

{% assets "scss_all" %}
    <link rel="stylesheet" href="/static/gen/all.css">
{% endassets %}
<ul>
    <li>
        Test Flask Assets
    </li>
</ul>

现在,当我 运行 应用程序时,它需要几秒钟才能生成 css,但它确实生成了。一旦完成,下面是 运行:

之后的目录结构

您可以在 chrome 调试器中看到它确实加载了:

需要注意的是配置中的文件夹必须是gen output='gen/all.css' 否则无法运行

编辑 同样根据@David 的评论,您必须创建所有必需的 scss 文件以生成输出。