为啥 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 服务器/控制台错误 - 没有要加载的文件 - 咖啡脚本(LoadError)
在没有咖啡脚本的 Rails 3.2 中使用 javascript