Twitter Bootstrap和Rails:如何使一些视图响应而其他视图不响应

时间:2012-12-02 07:00:53

标签: ruby-on-rails twitter-bootstrap asset-pipeline

根据bootstrap docs

将以下内容添加到<head>会使您的网站响应

<meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="assets/css/bootstrap-responsive.css" rel="stylesheet">

在rails和资产管道中,您在application.css中声明了您的css文件,因此不需要上面的最后一行。

我使用了bootstrap-sass gem,上面的代码在application.css文件中实现了这行代码

@include "bootstrap-responsive";

有效!

但不幸的是,这会使每个视图都有响应。

我有很多观点,比如我的骨干应用程序,我不想回应。

我考虑将<meta viewport...>标记声明为布局文件,该文件仅用于我网站中需要响应行为的那些部分。

这似乎不起作用,尽管有些观点没有通过布局声明这个元标记,但它们仍然具有响应性。

由于我无法精确控制在资产管道中加载哪些css文件,我有点难以理解如何关闭此响应行为。

我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

查看This link以获取一些好消息。它可能是压倒性的,知道,你不必做所有这一切......关键是:如果你删除require树(不会添加目录中的所有文件),你需要在config / environments /中手动添加它们production.rb with:

config.assets.precompile += %w( application-all.css application-print.css application-ie.css )

然后你可以使用stylesheet_link_tags没有问题......

为了使其更灵活,我将其添加到我的应用程序负责人:

<%= yield :head if content_for?(:head) %>

然后我的所有观点都使用:

<% content_for(:head) do %>
<%= stylesheet_link_tag "#{params[:controller]}.#{params[:action]}" %>
<%= javascript_include_tag "#{params[:controller]}.#{params[:action]}" %>
<% end %>