看来,在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. 谷歌地图不工作时,包括其他视图android
- 7. 在视图中包含.rb文件
- 8. 意向的setType其中不包括图像和视频,但其他的一切
- 9. 某些事件在周视图和其他日间视图中缺失,但在月视图中显示
- 10. 如果ApplicationUser.Roles包含某些角色,如何检入Razor视图?
- 11. Yii2 - 如何以包括视图文件外部JS和CSS
- 12. 不应该旋转,但应包括子视图,包括UIPopoverController
- 13. 充气视图,其中包括PDFViewCtrl
- 14. JQuery:包含一些文本但不包含其他文件的选择器
- 15. 如何在视图中包含组合?
- 16. 如何在Odoo中包含视图8
- 17. 不包含某些字段的视图列表
- 18. 包括从其他文件夹的css
- 19. 如何在codeigniter的另一个视图中包含视图文件和变量
- 20. 如何在包含视图的视图中继承DataContext?
- 21. 如何在cakephp的另一个视图中包含视图
- 22. 如何布局视图转换为位图不包括一些部件
- 23. 在列表视图中包含图像
- 24. 如何在Orchard视图中包含样式表和js文件
- 25. 如何在zend框架视图中包含文件?
- 26. CodeIgniter:如何在视图中包含.js文件?
- 27. 如何在AngularJS中包含视图特定的无文件
- 28. 如何在codeigniter视图中包含javascript代码内的CSS?
- 29. Swift:在超视图中查找视图(不包含for循环)
- 30. 获取子视图包含视图
%head和yield:head bits是做什么的? –
In Haml: %head = yield:head 将在HTML中生成
标记,并通过yield从另一页插入代码 – damienbrz