2

我在我的烧瓶应用程序中使用 scss 和烧瓶资产。

这是我的 app.py :

from flask_assets import Bundle, Environment
from flask import (Flask, render_template)
import os

app = Flask(__name__)
assets = Environment(app)
assets.url = app.static_url_path
assets.load_paths = [os.path.join(app.static_url_path, 'sass/abstracts')]
print(assets.load_paths)
assets.debug = True
app.debug = True



scss = Bundle('sass/abstracts/_variables.scss',
              'sass/base/_fu.scss',
              filters='pyscss', output='gen/all.css')

assets.register('scss_all', scss)

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

if __name__ == "__main__":
    app.run(host='0.0.0.0')

我正在使用 load_paths 告诉 flask_assets 去哪里寻找我的文件。这是我项目的基本结构:

文件结构

我的 all.css 已生成。但是,当我尝试从 _fu.scss 文件中的 abstracts 文件夹中导入我的 _variables.scss 时。这是我得到的:

scss.errors.SassImportError
scss.errors.SassImportError: Couldn't find anything to import: _variables
Extensions: <NamespaceAdapterExtension>, <CoreExtension>, <ExtraExtension>, <FontsExtension>, <CompassExtension>, <BootstrapExtension>
Search path:
  /Users/davidgeismar/code/davidgeismar/quantiops/flask-assets-test/static/sass/base
  /Users/davidgeismar/anaconda3/lib/python3.6/site-packages/scss/sass/frameworks
on line 1 of /Users/davidgeismar/code/davidgeismar/quantiops/flask-assets-test/static/sass/base/_fu.scss

如果我然后将我的变量文件移动到 _fu.scss 所在的基本文件夹中。然后它工作。

这是我的 _fu.scss 文件:

@import '_variables';
.tut {
  margin-top: 20px;
  color: $color-orange;
  background-color: $base-color;
}

我在这里想念什么?

4

1 回答 1

0

这是一个老问题,但我还是会尝试......

你认为将static_url_pathand添加static_folder到你的app函数中会解决这个问题吗?

    app = Flask(__name__,
                static_url_path='/',
                static_folder='../app/static')
于 2021-04-16T21:34:47.433 回答