无法使用flask资源从sass文件生成all.css文件

无法使用flask资源从sass文件生成all.css文件,flask,sass,flask-assets,Flask,Sass,Flask Assets,我厌倦了在我的flask应用程序中使用css,所以我决定使用flask资产转到SCS。 我在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='pysc

我厌倦了在我的flask应用程序中使用css,所以我决定使用flask资产转到SCS。 我在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安装烧瓶资产

pip安装pyscss(这是filters='pyscss'部分中的过滤器)

下面是我如何设置代码的:

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>
{%assets“scss_all”%}
{%endassets%}
  • 测试瓶资产
现在,当我运行应用程序时,它花了几秒钟的时间生成css,但它确实生成了。一旦运行,以下是运行后的目录结构:

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

需要注意的是,文件夹必须位于配置
output='gen/all.css'
中的
gen
,否则它将无法工作

编辑
此外,根据@David的评论,创建生成输出所需的所有scss文件非常重要。

那么您是手动创建gen文件夹的吗?我没有,它是自动生成的。这就是为什么我显示了前后屏幕快照。感谢我让它工作,问题是我在app.py中声明了foo和bar文件,并且只在我的文件夹中创建了foo。如果您觉得没有问题,您可以编辑您的答案,我添加了您的发现中的编辑。@TobiasKolb这不是必需的,但是有时候明智的做法是将您的css分为几个部分,以便更容易找到内容。特别是如果你有IE特定的css