为啥 rails 对咖啡脚本文件使用 .js.coffee 扩展名,因为它们无论如何都不能包含 JavaScript 代码?

Posted

技术标签:

【中文标题】为啥 rails 对咖啡脚本文件使用 .js.coffee 扩展名,因为它们无论如何都不能包含 JavaScript 代码?【英文标题】:Why is rails using the .js.coffee extension for coffeescript files when they cannot contain javascript code anyway?为什么 rails 对咖啡脚本文件使用 .js.coffee 扩展名,因为它们无论如何都不能包含 JavaScript 代码? 【发布时间】:2012-02-18 12:49:20 【问题描述】:

我发现这相当具有误导性,因为我认为这样的文件可能包含 javascript 和 coffeescript 代码的混合。有什么我缺少的非常基本的东西吗?

【问题讨论】:

他们对 CSS 文件做同样的事情:.css.scss 【参考方案1】:

在 Rails 中,模板具有 .js.coffee.html.erb.html.haml 等扩展名是一种常见做法。

如果我没记错的话,Rails 将这些扩展解释为 .[format].[builder] 并使用该知识做两件事:

    通过将[format] 值与请求的Accept 标头中列出的可接受格式进行比较,找到合适的模板; 通过[builder] 值找到合适的模板处理器来解析您的模板。

【讨论】:

我想这是我缺少的基本内容:我从 html.erb 文件开始,它们包含 html 和 erb 代码,这导致了我目前的理解 @KL-7 - 谢谢。我有一个单独但相关的问题:为什么我的 javascript 文件夹中有 .coffee 文件和 .js.coffee 文件?它们有什么区别?【参考方案2】:

如果你使用反引号,你可以包含纯 JavaScript。

`function() do something ;` 之类的东西会起作用。

【讨论】:

以上是关于为啥 rails 对咖啡脚本文件使用 .js.coffee 扩展名,因为它们无论如何都不能包含 JavaScript 代码?的主要内容,如果未能解决你的问题,请参考以下文章

预编译咖啡脚本文件(Rails 4)

rails 服务器/控制台错误 - 没有要加载的文件 - 咖啡脚本(LoadError)

在没有咖啡脚本的 Rails 3.2 中使用 javascript

CoffeeScript - 如何在 ruby​​ on rails 中使用咖啡脚本?

如何在 Rails 5 上禁用咖啡脚本

构建咖啡脚本代码?