0

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

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

现在application.scss已经*= require_tree .在里面了。最好保留它,以便 sprockets 自动包含所有 css 文件,但我希望它排除custom子目录。有没有办法做到这一点?

4

2 回答 2

1

我将从重新组织资产目录开始。一个建议是:

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

    *= require_tree ./common

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

    *= require_tree ./common

    *= require_tree ./custom_event

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

于 2013-08-15T14:43:27.777 回答
0

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

于 2013-08-15T13:44:24.180 回答