无法使用烧瓶资产从 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 文件以生成输出。
我厌倦了在我的 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 文件以生成输出。