【问题标题】:What does having two file extensions do in Rails (i.e.: .css.scss)?在 Rails 中具有两个文件扩展名(即:.css.scss)有什么作用?
【发布时间】:2017-04-17 19:30:34
【问题描述】:

我正在使用 Ruby on Rails,我正在通过 (rails g controller) 生成控制器和视图。它给了我一个.css.scss 文件和一个js.coffee 文件。我假设这是文件扩展名的有效形式,考虑到它是通过 Rails 生成的。

如果一个文件有两个文件扩展名,解释代码的程序如何知道使用哪一个?

即:

somefile.css.scss --> CSS 还是 SCSS?

somefile.js.coffee --> CoffeeScript 还是 JavaScript?

【问题讨论】:

    标签: javascript css ruby-on-rails-4 sass


    【解决方案1】:

    仅使用最后一个文件扩展名:

    somefile.css.scss 将是一个 SASS 文件。

    somefile.coffee.js 将是一个 JavaScript 文件。

    我假设 Rails 应用程序正在从 CSS 转换为 SASS(奇怪,通常是相反的方式)以及从 CoffeeScript 转换为 JavaScript,这就是它这样命名文件的原因。

    【讨论】:

    • 你为什么会使用它有功能原因吗?
    • 不确定您所说的“功能原因”是什么意思。在这种情况下,它用于提醒上一个文件的格式。另一个常见的用法是指定一个最小化的文件,例如somefile.min.js
    【解决方案2】:

    始终假定为文件扩展名的最新扩展名。

    【讨论】:

      【解决方案3】:

      这些是预处理器。所以index.html 是纯html。 index.html.erb 是启用了嵌入式 ruby​​ 的 html。 index.js.coffee 是一个 JavaScript 文件,您可以将其编写为咖啡脚本。 index.js.coffee.erb 是一个javascript文件,你可以用coffeescript编写并嵌入ruby(请注意,请尽量避免使用erb的js)

      在此处阅读更多信息:https://learn.co/lessons/asset-preprocessors-in-rails

      如上面的帖子所述,使用它的功能原因是能够用一种语言编写,该语言可以转换成另一种语言,或者嵌入其他情况下不可用的功能。 (简而言之)

      【讨论】:

      • 所以文章说它将它们从一个文件转换为另一个文件,这仅在 Rails 中有效还是即使没有 Rails 应用程序也有效?
      • 它是一个 Rails 资产管道。 ruby 默认没有这个。
      猜你喜欢
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 2012-02-24
      • 2017-11-27
      相关资源
      最近更新 更多