在每个变量的rails中加载特定的样式表

时间:2013-08-15 13:31:29

标签: css ruby-on-rails sass

我希望在custom中包含几个不同的自定义样式表的子目录(称为assets/stylesheets)。我的应用程序用于管理不同的事件,每个事件都有不同的应用程序运行实例。这些自定义样式表将包含特定于实例的css(即与事件徽标匹配的不同背景颜色)。在应用程序中有一个EventsConfiguration模型,我希望能够选择assets/stylesheets/custom中的一个样式表作为该模型中的变量保存。然后我不想要使用任何其他自定义css文件。

应该在所有其他css文件(编译成application.scss)之后加载自定义css文件,以便它可以覆盖。

现在application.scss中有*= require_tree .。保留链接会自动包含所有css文件但我希望它排除custom子目录,这样会很好。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

我首先要重新组织资产目录。一个建议是:

  1. assets/stylesheets/common
  2. 下移动常用样式表
  3. application.scss包含以下内容以及任何其他非自定义的样式表:

    *= require_tree ./common

  4. 创建特定于事件的样式表(custom_event.scss):

    *= require_tree ./common

    *= require_tree ./custom_event

  5. 然后,您可以根据配置参数在视图中要求正确的样式表。从长远来看,保持样式表模块化将非常有用。

答案 1 :(得分:0)

排除custom目录的最简单方法是将custom目录移至lib/assets/stylesheets,然后application.scss不会包含该目录。