Flask 烧瓶资产根本不工作…=精神错乱

Flask 烧瓶资产根本不工作…=精神错乱,flask,sass,less,webassets,flask-assets,Flask,Sass,Less,Webassets,Flask Assets,我只是尝试了设置(基于webassets),但就是无法让它工作 我有标准的设置 pythonvirtualenv pip安装基本设备(烧瓶、烧瓶资产) sass红宝石(用于尝试sass/scss) 通过npm减少(用于尝试减少SCS) 通过pip的jsmin(用于尝试jsmin) 配置: 我已经在Flask中创建了一个工作主页 static已创建文件夹(用于css/js资产) css/js文件已确认正常工作(css背景、js滑块等) 基本上我的开发网站是完美的工作 我在这里遵循了简单的官

我只是尝试了设置(基于webassets),但就是无法让它工作

我有标准的设置

  • pythonvirtualenv
  • pip安装基本设备(烧瓶、烧瓶资产)
  • sass红宝石(用于尝试sass/scss)
  • 通过npm减少(用于尝试减少SCS)
  • 通过pip的jsmin(用于尝试jsmin)
配置:

  • 我已经在Flask中创建了一个工作主页
  • static
    已创建文件夹(用于css/js资产)
  • css/js文件已确认正常工作(css背景、js滑块等)
  • 基本上我的开发网站是完美的工作
我在这里遵循了简单的官方指南:。 我完全理解如何使用它(根据该页面)。我甚至粘贴了代码的精确副本,但仍然无法使其正常工作

我尝试过的一些代码(用于lesscss):(当然,我在main.less中有可用的css)

然后在我的模板中:

{% assets "less" %}
<link href="{{ ASSET_URL }}" rel="stylesheet">
{% endassets %}
所以,;如果我手动创建一个空的main.css,它会加载页面(没有错误),但是main.css文件中没有填充css,因此flask assets/webassets仍然不工作

我还尝试过以各种方式将assets对象传递给模板,以备需要(尽管没有文档说明这一点),但这并不起作用

这让我快发疯了。如有任何提示,将不胜感激。

谢谢

文件中缺少信息。 您的问题是sass_bin配置或环境加载路径。 你应该两个都试试,在我的例子中是配置。请参阅下面我的工作配置

PS:IMHO Flask资产既不完整也没有很好的记录。它还消耗您的应用程序运行时,这在调试和生产方面都很糟糕。我已经改用大口喝了

 env = Environment(app)
 env.config['sass_bin'] = '/usr/local/bin/sass'
 # env.load_path = [os.path.join(os.path.dirname(__file__), 'sass')]
 js = Bundle('js/jquery/jquery-2.1.4.js', 'js/angular/angular.js',
             'js/socketio/socket.io.js', filters='jsmin', output='js/all_min.js')
 env.register('js_all', js)
 myjs = Bundle('myjs/Interpolation.js', 'myjs/socketio.js' , filters='jsmin', output='myjs/all_min.js')
 env.register('myjs_all', myjs)
 css = Bundle('sass/base.sass', filters='sass', output='css/base.css')
 env.register('css_all', css)

你不能同时使用LESS和Sass,你到底在用哪一个?我想要Sass。所以我试着用它=不起作用。我的调试过程,看看它是否只是Sass不工作,或其他东西太。。。所以我尝试了SCSS=不工作。所以我试着不工作。所以我在flase资产站点(jsmin)上尝试了一个完全相同的例子=不工作。你在Flask中打开了调试吗?我有。。。(我已经尝试了使用调试和不使用调试)。如果没有调试,我只会得到一个通用的“内部服务器错误”页面(没有什么用处),但是通过调试,我会得到问题中的BuildError消息。。。
webassets.exceptions.BuildError
BuildError: Nothing to build for <Bundle output=css/main.css, filters=[<webassets.filter.less.Less object at 0x7f4958dc6710>], contents=('css/main.less',)>, is empty
 env = Environment(app)
 env.config['sass_bin'] = '/usr/local/bin/sass'
 # env.load_path = [os.path.join(os.path.dirname(__file__), 'sass')]
 js = Bundle('js/jquery/jquery-2.1.4.js', 'js/angular/angular.js',
             'js/socketio/socket.io.js', filters='jsmin', output='js/all_min.js')
 env.register('js_all', js)
 myjs = Bundle('myjs/Interpolation.js', 'myjs/socketio.js' , filters='jsmin', output='myjs/all_min.js')
 env.register('myjs_all', myjs)
 css = Bundle('sass/base.sass', filters='sass', output='css/base.css')
 env.register('css_all', css)