【问题标题】:SCSS file namesSCSS 文件名
【发布时间】:2011-10-10 22:12:54
【问题描述】:

我在新资产管道以及 SASS 和 SCSS 上找到了大量资源。但是有一个问题困扰着我:命名 CSS 文件的正确方法是什么?是.css.scss,还是我不能直接用.scss

在我见过的几乎每个例子中,他们都有前者,所以肯定是有原因的。我更喜欢后者,因为它让我的文件树在老眼中变得更容易了。

无论如何,仅仅因为某些东西有效并不意味着它是正确的,所以我想知道什么是正确的以及为什么。

【问题讨论】:

    标签: ruby-on-rails asset-pipeline sass


    【解决方案1】:

    虽然 Richard Hulse 提供了事实和有用的信息,它并没有解决所提出的具体问题

    我已经确定,即使 .scss.css.scss 之间似乎没有任何技术差异,命名您的 SCSS 文件以包含.css 也是如此 (as mentioned in this Tweet)。

    2013 年 5 月 31 日更新:我看到这继续收到不必要的反对票,没有任何实质性的 cmets,但这绝对是我最初问题的正确答案。

    2016 年 8 月 27 日更新:对于遇到此问题的任何人,似乎此讨论对于 Rails v5+ 和 Sprockets v3.0+ 不再有效(请参阅 SASS Rails commit d355de9 on GitHub)。生成一个新的 Rails 应用程序将创建仅带有 .scss 扩展名的 SCSS 文件(没有 .css.scss)。

    【讨论】:

    • 恕我直言,在我看来@Richard Hulse 解释得很好。您应该使用 .css.scss 扩展名,因为文件需要由 sass 处理。之后它将被用作css文件。没有 css 部分它是否仍然有效是无关紧要的,正如 twitter 上显示的那样,它是约定。
    • 没错,他解释说扩展链调用了它们各自的处理器,但这不是问题所在。问题是如果 SASS 处理器是唯一被调用的处理器,为什么还要包含“.css”。我的回答正好解决了我原来的问题。
    • 我不明白为什么人们一直对我自己的答案投反对票。它正确而具体地回答了我最初提出的确切问题。
    【解决方案2】:

    正确的方法是仅当您想对文件应用某种处理器时才使用扩展名。这些进程是按照扩展从右到左出现的顺序应用的。

    标记为 .css 的文件只是一个普通的旧 css 文件。

    标记为 .css.erb 的文件是将作为 erb 处理然后作为 CSS 处理的文件。

    file .css.scss.erb 将应用两种类型的处理。首先是 ERB,然后是 SCSS。

    如果您没有在文件或 SCSS 中使用 ERB,那么您不需要添加任何额外的扩展。

    注意:如果您需要在 CSS 中引用图像,则必须使用 SCSS 或 ERB,因为它们具有在资产管道中使用时生成正确 URL 的辅助方法。

    【讨论】:

    • 您正确地添加了扩展以添加预处理,并且按照您希望它们应用的顺序。但这并不能回答问题,而是将原始 .css 留在文件名中。澄清一下:只使用.scss 扩展有什么问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2016-12-07
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    相关资源
    最近更新 更多