【发布时间】:2015-08-14 09:17:38
【问题描述】:
我在我的应用程序上安装了 Bootstrap gem,但是我想为我的登录页面包含一个特殊的样式表。我如何包含这个样式表而不使样式表对所有视图都是全局的(这就是发生在我身上的事情。)
【问题讨论】:
标签: html css ruby-on-rails twitter-bootstrap
我在我的应用程序上安装了 Bootstrap gem,但是我想为我的登录页面包含一个特殊的样式表。我如何包含这个样式表而不使样式表对所有视图都是全局的(这就是发生在我身上的事情。)
【问题讨论】:
标签: html css ruby-on-rails twitter-bootstrap
1) 在呈现登录页面的控制器方法中,在方法末尾添加以下行:
render :layout => false
假设您需要 100% 自定义布局和样式表,该代码将阻止 application.html.erb 布局应用于登录页面。如果您对应用的全局布局(页面结构,包括任何页眉或页脚部分等)感到满意,请忽略此步骤。
2) 在您的 login.html.erb(或任何包含您的视图的文件)中,您需要以下行来指向您的特定 css 文件:
<%= stylesheet_link_tag 'foo', media: 'print, screen' %>
其中foo 指向包含在您的app/assets/stylesheets 目录中的foo.css 文件。如果您不想区分样式表媒体版本,可以跳过 media 位,但如果用户尝试打印页面,或者您使用的是响应式视图,您可能会遇到无样式视图的问题布局。
3) 在样式表链接标签生效之前,您必须告诉 Rails 预编译它。在your_app/config/initializers/assets.rb 中,添加以下行:
Rails.application.config.assets.precompile += %w( foo.css )
4) 重新启动 Rails 应用程序。
5) 创建并编写您的 foo.css 文件。
您应该会看到应用了特定于视图的 css。另外...我放牧你 liek mudkipz。
【讨论】:
initilizers 目录中似乎没有assets.rb。是我遗漏了什么还是我可以添加文件?