【问题标题】:CSS require SyntaxCSS 需要语法
【发布时间】:2023-03-12 03:05:01
【问题描述】:
我在许多 RubyOnRails 应用程序中多次需要 CSS 样式表,实际上我需要揭开一些神秘面纱。
有什么区别:
//=require mystyles
和
*=require mystyles
两者似乎都有效,那么有什么区别?
这是资产管道的一部分,还是 SASS 的一部分,或者只是普通的 CSS?
【问题讨论】:
-
我从未见过使用“require”。要像其他脚本一样包含样式表,可以使用 import at-rule。
标签:
ruby-on-rails
sass
asset-pipeline
【解决方案1】:
您给出的两个示例与样式表完全相同,但是 //= 语法是唯一适用于 Javascript 的语法。您还需要在开头添加标准 CSS 注释 (/*) 并在 require 块末尾添加关闭注释 (*/),以使其被资产管道以外的任何内容忽略:
/* ...
*= require mystyles
*= require_self
*/
这些 require 指令只是资产管道的一部分,而不是 CSS 或 SASS。要包含 CSS 或 SASS 的样式表,您将使用 Blieque 在评论中所述的 @import 规则。
查看 Ruby on Rails 指南网站上的 manifest files and directives section of the Asset Pipeline guide,了解有关差异的更详细说明。那里还给出了一个可能感兴趣的警告:
如果你想使用多个 Sass 文件,你通常应该使用
Sass @import 规则而不是这些 Sprockets 指令。使用
Sprockets 指令所有 Sass 文件都存在于它们自己的范围内,
使变量或 mixin 仅在它们的文档中可用
中定义的。