我们说我有一个名为foobar.js.erb.coffee
的文件。
我很困惑在编译rails应用程序时如何解释此文件。我的理解如下: 1)Coffeescript预处理器引擎将coffeescript解释为ruby(erb)。 2)ERB预处理器引擎将ruby转换为javscript。
我是否理解正确?
答案 0 :(得分:1)
例如,foobar.js.erb.coffee
文件的扩展名将由两部分组成:格式(
foobar.js
)后跟处理程序(.erb.coffee
)。
处理程序是模板或模板语言的预处理程序。内置了许多处理程序,使用额外的宝石可以添加更多处理程序。
转换顺序是从右到左。
在您的情况下,CoffeeScript引擎尝试将CoffeeScript转换为JavaScript(由于现有ERB可能导致错误,可能导致CoffeeScript语法无效),然后ERB处理程序将所有Ruby代码替换为输出值应该是什么。
对于这种情况,我总是把.erb
放在最后。例如,main.css.scss.erb
或app.js.es6.erb
。