我发现了一种方法,可以通过仍然使用资产管道但将样式表进行分组来降低其僵化度和面向未来。它并没有比您的解决方案简单得多,但是此解决方案使您可以自动添加新的样式表,而不必再次重新编辑整个结构。
您要做的是使用单独的清单文件来分解内容。首先,您必须重新组织您的
app/assets/stylesheets文件夹:
app/assets/stylesheets+-- all +-- your_base_stylesheet.css+-- print +-- blueprint +-- print.css +-- your_print_stylesheet.css+-- ie +-- blueprint + ie.css +-- your_ie_hacks.css+-- application-all.css+-- application-print.css+-- application-ie.css
然后,编辑三个清单文件:
接下来,您将更新应用程序布局文件:
<%= stylesheet_link_tag "application-all", :media => "all" %><%= stylesheet_link_tag "application-print", :media => "print" %><!--[if lte IE 8]> <%= stylesheet_link_tag "application-ie", :media => "all" %><![endif]-->
最后,不要忘了在您的config / environments / production.rb中包含这些新的清单文件:
config.assets.precompile += %w( application-all.css application-print.css application-ie.css )
更新:
正如Max所指出的那样,如果您遵循这种结构,则必须注意图像参考。您有几种选择:
- 移动图像以遵循相同的模式
- 请注意,这仅在图像未全部共享时有效
- 我希望这对于大多数人来说都是一个入门者,因为它会使事情变得过于复杂
- 限定图像路径:
background: url('/assets/image.png');
- 使用SASS助手:
background: image-url('image.png');



