【问题标题】:How do I switch from using the twitter-Bootstrap-rails gem to using normal Bootstrap如何从使用 twitter-Bootstrap-rails gem 切换到使用普通 Bootstrap
【发布时间】:2013-08-16 07:12:41
【问题描述】:

我有一个使用 Bootstrap rails gem 构建的 Rails 应用程序,用于开发,但现在我要开始做设计和样式设置,我宁愿只是正常/本地引用 bootstrap。该应用基于the rails3-bootstrap-devise-cancan template

我尝试删除 bootstrap-sass gem,然后删除 /assets 中的所有样式表和 .js 文件,并将 application.css 和 application.js 替换为 bootstrap.css 和 bootstrap.js。但是当我启动应用程序时,我可以看到它正在从引导程序中抓取某些内容,但是格式错误并且很多界面内容都不起作用。

最简单、最干净的转换方法是什么?

source 'https://rubygems.org'
gem 'rails', '3.2.13'
gem 'sqlite3'
gem 'mysql2'
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end
gem "rspec-rails", ">= 2.12.2", :group => [:development, :test]
gem "database_cleaner", ">= 1.0.0.RC1", :group => :test
gem "email_spec", ">= 1.4.0", :group => :test
gem "cucumber-rails", ">= 1.3.1", :group => :test, :require => false
gem "launchy", ">= 2.2.0", :group => :test
gem "capybara", ">= 2.0.3", :group => :test
gem "factory_girl_rails", ">= 4.2.0", :group => [:development, :test]
gem "bootstrap-sass", ">= 2.3.0.0"
gem "devise", ">= 2.2.3"
gem "cancan", ">= 1.6.9"
gem "rolify", ">= 3.2.0"
gem "simple_form", ">= 2.1.0"
gem "quiet_assets", ">= 1.0.2", :group => :development
gem "figaro", ">= 0.6.3"
gem "better_errors", ">= 0.7.2", :group => :development
gem "binding_of_caller", ">= 0.7.1", :group => :development, :platforms => [:mri_19, :rbx]
gem 'execjs'
gem 'jquery-rails'
gem 'jquery-ui-rails'

【问题讨论】:

  • 发布您的 gem 文件将有助于回答。
  • 你真的用bootstrap.css替换 application.css吗?您还删除了哪些其他 CSS/JS,您确定不需要它们来获得预期的结果吗?
  • 已发布 gem 文件。我删除了所有的css和js文件。将 bootstrap.css 放入 css 文件夹并将其重命名为 application.css。对javascript文件做了同样的事情。

标签: css ruby-on-rails ruby twitter-bootstrap twitter-bootstrap-rails


【解决方案1】:

bootstrap-less gem 不应影响您自己的 app/assets 文件夹中的文件,而是从每个 gem 的相应文件夹中获取它们。我的猜测是您删除的 CSS/JS 资产不是由 gem 放在那里的,而是由您或其他从事该项目的人放在那里的。

不要替换 application.cssapplication.js 与 Bootstrap 文件,您应该将它们添加到您的资产文件夹,然后将它们导入到应用程序文件中。因此,如果您有任何其他资产,也可以将它们导入到相同的文件中。

通常,同一文件夹中的所有文件都会自动导入。我的application.css 默认包含此注释,指示它将所有 CSS 文件包含在同一目录树中:

 *= require_tree .

您可能应该阅读how the Asset Pipeline works,这样可以更轻松地找出问题所在。

【讨论】:

  • 那么目前从哪里提取引导资产?此外,所有其他 css 文件大多是空的,我认为是自动生成的。我的应用程序是基于github.com/RailsApps/rails3-bootstrap-devise-cancan
  • 它们被包含在 Rails 从 gem 文件中看到的结构中。您可以浏览bootstrap-sass GitHub repo 以查看其结构。这些文件位于vendor/assets 文件夹中,该文件夹包含在与您的app/assets 相同的级别中。
  • +1,您应该阅读资产管道的工作原理,替换 application.cssbootstrap.css 不是要走的路。
  • 同样,您可以将下载的 Bootstrap 文件放在您自己的 vendor 文件夹中。如果您对使用libvendor 背后的基本原理感兴趣,除了app 文件夹还有a good topic on Programmers SE available
  • 我想我只是希望有一些简单直接的方法来删除 gem,放入引导程序,然后在我的 html.erb 中引用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多