看来,在rails 3.1中,所有的css.scss文件都被合并为1个文件。如果我想让一个css文件只包含在某些视图中,我该怎么办?就像我想让admin.css.scss包含在home/about/contact页面的管理页面和main.css.scss中一样。Rails3.1 - 如何在某些视图中包含css文件,但不包括其他视图?
8
A
回答
13
在Rails 3.1,如果你的application.css看起来像所有的样式表将被合并到application.css。
您可能需要使用特定的样式表:
*= require main
否则,你的布局,你写:
%head
= yield :head
,并在您的网页:
= content_for :head do
= stylesheet_link_tag 'stylesheet'
3
参见:
http://guides.rubyonrails.org/layouts_and_rendering.html
(见第2.2.14 '查找布局')
你可以有不同的布局不同的控制器!
例如在应用程序/视图/布局下你可以有application.haml和admin.haml 和应用程序/控制器下你会有一个admin_controller.rb
Rails将尝试找到与控制器同名的布局。
您也可以重写此行为,并指定要使用的布局,例如:
class ItemsController < ApplicationController
layout "admin"
#...
end
你会再根据应用程序创建一个admin.scss文件/样式表为这个新的布局!
/*
* This is a manifest file that'll automatically include all the stylesheets available in this directory
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
* the top of the compiled file, but it's generally better to create a new file per style scope.
*= require_self
*= require_tree .
*/
这是由于* = require_tree:
10
让我补充一个为我工作的解决方案。
正如在前面的回答中提到,你可能想从application.css文件中删除
*= require_tree .
声明。
我不停的
*= require_self
语句在应用程序共享样式。
然后在我的application.html文件我用以下语句,只包括application.css并在视图中controller.controller_name.css样式表。
= stylesheet_link_tag "application", controller.controller_name
= javascript_include_tag "application", controller.controller_name
正如你所看到的JavaScript文件的作品一样。
相关问题
- 1. 包含视图内的其他视图
- 2. Nodejs包含其他视图?
- 3. 禁用所有其他视图不包括地图视图Gmap2
- 4. C标题在包含在某些文件中时会导致错误,但不包括在其他文件中
- 5. 我如何删除包含某些文件,不包含其他文件
- 6. *,但不包括某些文件
- 7. 如何在视图中包含css文件 - laravel
- 8. 如何使用TortoiseSVN在提交中包含某些文件的已更改行但不包含其他行?
- 9. 谷歌地图不工作时,包括其他视图android
- 10. 在视图中包含.rb文件
- 11. 包含视图其他视图的最佳方式
- 12. 意向的setType其中不包括图像和视频,但其他的一切
- 13. 某些事件在周视图和其他日间视图中缺失,但在月视图中显示
- 14. 在我的视图中包含CSS XHTML
- 15. RecyclerView与不同卡片视图,其中包含其他列表
- 16. 如果ApplicationUser.Roles包含某些角色,如何检入Razor视图?
- 17. Yii2 - 如何以包括视图文件外部JS和CSS
- 18. 包装包括视图
- 19. 包括?条件HAML视图
- 20. 不应该旋转,但应包括子视图,包括UIPopoverController
- 21. PHP cURL不包括视图
- 22. 充气视图,其中包括PDFViewCtrl
- 23. JQuery:包含一些文本但不包含其他文件的选择器
- 24. Codeigniter包含在视图中
- 25. 如何在视图文件夹中包含js.erb文件
- 26. 包含zend视图中的文件
- 27. 如何在html视图中包含node_modules
- 28. 如何在视图中包含ExpandableListActivity
- 29. 如何在openerp视图中包含类?
- 30. 如何在视图中包含组合?
%head和yield:head bits是做什么的? –
In Haml: %head = yield:head 将在HTML中生成
标记,并通过yield从另一页插入代码 – damienbrz