当资源文件在rails中编译时,预处理器引擎如何运行?

时间:2016-09-30 05:34:34

标签: ruby-on-rails ruby coffeescript

我们说我有一个名为foobar.js.erb.coffee的文件。

我很困惑在编译rails应用程序时如何解释此文件。我的理解如下: 1)Coffeescript预处理器引擎将coffeescript解释为ruby(erb)。 2)ERB预处理器引擎将ruby转换为javscript。

我是否理解正确?

1 个答案:

答案 0 :(得分:1)

例如,foobar.js.erb.coffee

  

文件的扩展名将由两部分组成:格式(foobar.js)后跟处理程序(.erb.coffee)。

处理程序是模板或模板语言的预处理程序。内置了许多处理程序,使用额外的宝石可以添加更多处理程序。

转换顺序是从右到左。

在您的情况下,CoffeeScript引擎尝试将CoffeeScript转换为JavaScript(由于现有ERB可能导致错误,可能导致CoffeeScript语法无效),然后ERB处理程序将所有Ruby代码替换为输出值应该是什么。

对于这种情况,我总是把.erb放在最后。例如,main.css.scss.erbapp.js.es6.erb