2009-12-29 30 views
3

在我的样式表目录中,我有application.css,ie_fixes.cssthemes目录。 themes目录中有大约20个css文件。所有这些样式表减去ie_fixes都是应用程序范围的,因此它们被包含在应用程序布局中。只有当用户的浏览器是IE时才需要包含ie_fixes.css。我希望能够在简单的代码行中将所有内容包含在主题文件夹中。将所有样式表包含在Rails的子目录中

Rails提供一个简单的方法做这包括所有的样式表:

stylesheet_link_tag :all, :recursive => true

花哨,但这个问题是它包含了我在每个浏览器ie_fixes.css,吹我的IE条件注释出来的水。所以我的问题是,有没有一种简单的方法来包含所有样式表的子目录,而不必指定每个文件名?

我试过stylesheet_link_tag 'themes/', :recursive => true不同的变化无济于事。看起来这个方法所做的一切都是在stylehseet目录前面加上.css,如果需要的话。

+0

难道你不能只使用共享部分? – 2009-12-29 01:21:55

+0

我认为这会过于复杂。 – thorncp 2009-12-29 01:35:01

+0

这将是代码重用,并且代码重用通常会是很好的设计。 – 2009-12-29 02:54:30

回答

1

您能否将它包含在另一个目录中,而在头标记的条件IE语句中,将其指向该目录?

这仍然可以让你得到花哨的样式表:所有当你需要它。

+0

这将涉及用所有主题来清理根样式表目录,这就是为什么主题子目录存在。 – thorncp 2009-12-29 01:36:33

+0

我认为你的ie_fixes.css只适用于IE浏览器的权利?我想你在说什么,每个主题也必须从这个ie_fixes.css文件也适当继承?即拧紧一切:-)祝你好运。 – pjammer 2009-12-29 03:48:14

+0

是的,ie_fixes只适用于IE。不,主题不需要IE修复,它修复了完全不同的东西。基本上我想包括除ie_fixes之外的每个浏览器的每个css,IE只包含ie_fixes。 – thorncp 2009-12-29 04:38:49

2

一个解决方案是将所有的CSS文件(IE除外)合并到一个文件中。然后根据需要包含IE特定的文件。

无论如何,你会想这样做,因为20个http连接(每次最多2个)将永远占用。

+0

这就是':cache => true'是的;) – thorncp 2009-12-29 06:51:29

+0

虽然第一次加载仍然会很慢 – corroded 2010-08-27 19:01:48

相关问题