【问题标题】:Twitter Bootstrap and Rails: How to make some views responsive and others notTwitter Bootstrap 和 Rails:如何使某些视图具有响应性而其他视图不响应
【发布时间】:2012-12-02 07:00:52
【问题描述】:

根据引导文档

将以下内容添加到您的 <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";

有效!

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

我有许多视图,例如我不想响应的主干应用程序。

我考虑将&lt;meta viewport...&gt; 标记声明到一个布局文件中,该文件仅用于我的网站中需要响应行为的那些部分。

这似乎不起作用,尽管一些视图没有通过它们的布局声明这个元标记,但它们仍然会变得响应。

由于我无法精细地控制哪些 css 文件被加载到资产管道中,我有点困惑如何关闭和开启这种响应行为。

我如何做到这一点?

【问题讨论】:

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


    【解决方案1】:

    查看This link 了解一些有用的信息。这可能会让人不知所措,知道,你不必做所有这些......关键是:如果你删除了 require 树(它不会在目录中添加所有文件),你需要在 config/environments/ 中手动添加它们production.rb 与:

    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 %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      相关资源
      最近更新 更多