【问题标题】:Rails import scss file for specific layoutRails 为特定布局导入 scss 文件
【发布时间】:2018-12-14 00:41:37
【问题描述】:

在我的应用中,我有 2 种布局,一种用于应用本身,一种用于网站(关于我们、联系人等)。

我已经为 application.css.scss 上的应用布局导入了 scss 文件。

现在我正在尝试导入其他一些 scss 文件以仅应用于站点布局,以免弄乱应用程序布局。

这些文件使用 $white 等变量。

我看到的建议是将 scss 文件应用于特定布局的建议是将其导入布局文件本身,例如 <%= stylesheet_link_tag "variables" %>

但是变量看不到。我知道这不起作用,因为要作为 sass 处理文件,我需要在 application.css.scss 上使用 @import。但如果我这样做,它们就会被应用到任何地方。

scss 文件放在 vendor 文件夹中。

我的假设是否正确?有没有其他方法可以实现我想要的?

【问题讨论】:

  • "但变量看不到" 我认为 SASS 变量不会出现在最终的 CSS 中。仅输出 CSS 规则。
  • 我说的是开发环境,在预编译之前,如果这很重要的话..

标签: ruby-on-rails sass


【解决方案1】:

我猜你最好的选择是为每个布局使用不同的 css(application.scsstheother.scss),因为需要在资产预编译时应用变量。

theother.scss 类似于:

/*
*= require 'variables'
*= require 'application'
*/

如果您需要 variables 文件覆盖其他变量,也许您需要更改 require 'application' 以及其中的所有 require

然后,您将 theother.scss 添加为要在 rails config 上预编译的资产:

Rails.application.config.assets.precompile += %w( theother.css )

最后,在您使用的一种布局上:

stylesheet_link_tag "application"

你使用的另一个:

stylesheet_link_tag "theother"

【讨论】:

    猜你喜欢
    • 2019-08-21
    • 2020-03-05
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 2016-06-11
    相关资源
    最近更新 更多