在 rails 中编译资产文件时,预处理器引擎如何运行?
how does preprocessor engine runs when asset files are compiled in rails?
假设我有一个名为 foobar.js.erb.coffee
.
的文件
我很困惑在编译 rails 应用程序时如何解释这个文件。我的理解如下:
1) Coffeescript 预处理器引擎将 coffeescript 解释为 ruby(erb)。
2) ERB 预处理器引擎将 ruby 转换为 javscript.
我理解正确吗?
例如,foobar.js.erb.coffee
The extension of the file will be composed of two parts: the format (foobar.js
) followed by the handler (.erb.coffee
).
处理程序是模板或模板语言的预处理器。内置了许多处理程序,可以使用额外的 gem 添加更多处理程序。
转换顺序是从右到左。
在您的情况下,CoffeeScript 引擎尝试将 CoffeeScript 转换为 JavaScript(可能会发生错误,因为现有的 ERB 可能会导致 CoffeeScript 的语法无效),然后 ERB 处理程序将替换所有 Ruby 输出值应该是什么的代码。
对于这种情况,我总是把.erb
放在最后。例如,main.css.scss.erb
或 app.js.es6.erb
.
假设我有一个名为 foobar.js.erb.coffee
.
我很困惑在编译 rails 应用程序时如何解释这个文件。我的理解如下: 1) Coffeescript 预处理器引擎将 coffeescript 解释为 ruby(erb)。 2) ERB 预处理器引擎将 ruby 转换为 javscript.
我理解正确吗?
例如,foobar.js.erb.coffee
The extension of the file will be composed of two parts: the format (
foobar.js
) followed by the handler (.erb.coffee
).
处理程序是模板或模板语言的预处理器。内置了许多处理程序,可以使用额外的 gem 添加更多处理程序。
转换顺序是从右到左。
在您的情况下,CoffeeScript 引擎尝试将 CoffeeScript 转换为 JavaScript(可能会发生错误,因为现有的 ERB 可能会导致 CoffeeScript 的语法无效),然后 ERB 处理程序将替换所有 Ruby 输出值应该是什么的代码。
对于这种情况,我总是把.erb
放在最后。例如,main.css.scss.erb
或 app.js.es6.erb
.