【发布时间】:2016-09-30 15:04:26
【问题描述】:
假设我有一个名为 foobar.js.erb.coffee 的文件。
我很困惑在编译 rails 应用程序时如何解释这个文件。我的理解如下: 1) Coffeescript 预处理器引擎将coffeescript 解释为ruby(erb)。 2) ERB 预处理引擎将 ruby 转换为 javscript。
我理解正确吗?
【问题讨论】:
标签: ruby-on-rails ruby coffeescript
假设我有一个名为 foobar.js.erb.coffee 的文件。
我很困惑在编译 rails 应用程序时如何解释这个文件。我的理解如下: 1) Coffeescript 预处理器引擎将coffeescript 解释为ruby(erb)。 2) ERB 预处理引擎将 ruby 转换为 javscript。
我理解正确吗?
【问题讨论】:
标签: ruby-on-rails ruby coffeescript
例如,foobar.js.erb.coffee
文件的扩展名将由两部分组成:格式 (
foobar.js) 和处理程序 (.erb.coffee)。
处理程序是模板的预处理器,或模板语言。内置了许多处理程序,并且可以通过使用额外的 gem 添加更多处理程序。
转换顺序是从右到左。
在您的情况下,CoffeeScript 引擎尝试将 CoffeeScript 转换为 JavaScript(可能会发生错误,因为现有 ERB 可能导致 CoffeeScript 语法无效),然后 ERB 处理程序会将所有 Ruby 代码替换为输出值应有的值。
对于这种情况,我总是把.erb放在最后。例如,main.css.scss.erb 或 app.js.es6.erb。
【讨论】: