gpt4 book ai didi

flask - 在网络 Assets 包中使用 "depends"

转载 作者:行者123 更新时间:2023-12-03 16:15:52 25 4
gpt4 key购买 nike

我正在使用 webassets在我的 Flask 应用程序中使用 Flask-Assets我在使用 depends 时遇到了问题创建 bundles 时的选项.

在我的例子中,我从以下目录结构中捆绑了 LESS 文件:

/static
\_ /css
\_ /bootstrap
| \_ bootstrap.less // This file @imports variables.less and custom.less
| \_ variables.less
\_ custom.less

我的包看起来像这样:

css = Bundle(
"css/bootstrap/bootstrap.less",
filters="less, cssmin",
output="dist/base.css",
depends="**/*.less"
)

使用这些设置,每当对 bootstrap.less 进行更改时,都会重建 LESS 文件。或 custom.less但不是 variables.less .

据我了解,用于 depends 的表达式选项是 glob指令和使用上面的指令应该简单地递归地遍历所有目录并选择任何 LESS 文件。但是,它似乎从未接受对 variables.less 所做的任何更改。 .

在我尝试解决这个问题时,我尝试了 depends 的以下选项:

  • "*.less" - 不拾取任何东西(因为它在项目目录的根目录中搜索,我相信,那里无论如何都没有 LESS 文件)
  • "**/*.less, myproject/static/css/bootstrap/variables.less" - 根本不接受任何文件中的任何更改。
  • "**/*.less, myproject/static/css/bootstrap/variables.less" - 同上。
  • "myproject/static/css/bootstrap/variables.less" - 奇怪的是,这反射(reflect)了对 variables.less 所做的更改以及任何其他 LESS 文件(例如 custom.less )。

从本质上讲,最后一项是我的问题的“解决方案”,但我不知道它为什么会这样工作,所以它不太适合我。任何人都可以在这里提供正确方向的解释或插入吗?

谢谢!

最佳答案

这里的问题是 glob 模块不支持递归 glob **(还;请参见 issue 13968)。

以下是我在我的一个项目中的设置方式(不确定这是否适合您的需要):

less/
├── bootstrap/
│  ├── bootstrap.less
│   ├── variables.less
│   └── ...
└── style.less # @import "bootstrap/bootstrap.less";

捆绑配置:

css = Bundle(
"less/style.less",
filters="less, cssmin",
output="css/all.css",
depends="less/bootstrap/*.less"
)

关于flask - 在网络 Assets 包中使用 "depends",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18212142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com