Rails 앱에 Bootstrap 3 설치


112

Rails 앱에 Bootstrap 3.0을 설치하려고합니다. 저는 최근에 Michael Hartl의 튜토리얼을 마쳤고 이제이 새로운 버전의 Bootstrap을 사용하여 나만의 시스템을 구축하려고 시도하고 있지만 몇 가지 질문이 있습니다.

내 시스템 사양 :

  • MBP의 OS X Mountain Lion
  • 레일스 4.0
  • 루비 2.0

내가 가진 질문 :

  1. 내 Gemfile에서 사용하기에 가장 좋은 보석은 무엇입니까? 몇 가지를 찾았습니다.
  2. 에서 무엇을 가져 오나요 custom.css.scss? 2.3.2와 다른 곳을 읽었습니다.
  3. Bootstrap이 작동하도록하기 위해해야 ​​할 다른 일이 있습니까? 아니면 나머지 단계가 Bootstrap 2.3.2에서 따랐던 것과 동일합니까?

편집하다

다음은 GitHubbootstrap-rails 프로젝트가 처음으로하는 작업입니다.

gem 'anjlab-bootstrap-rails', :require => 'bootstrap-rails',
                              :github => 'anjlab/bootstrap-rails'

그런 다음 이렇게 말합니다.

gem 'anjlab-bootstrap-rails', '>= 3.0.0.0', :require => 'bootstrap-rails'

그들은 같은 일을합니까, 아니면 둘 다해야합니까?

답변:


272

실제로 이것을 위해 gem이 필요하지 않습니다. RoR에 Bootstrap 3을 설치하는 단계가 있습니다.

  • 부트 스트랩 다운로드

  • 부:

    bootstrap-dist/css/bootstrap.cssbootstrap-dist/css/bootstrap.min.css

    에: vendor/assets/stylesheets

  • 부:

    bootstrap-dist/js/bootstrap.jsbootstrap-dist/js/bootstrap.min.js

    에: vendor/assets/javascripts

  • 업데이트 : app/assets/stylesheets/application.css 추가하여 :

    *= require bootstrap.min
  • 업데이트 : app/assets/javascripts/application.js 추가하여 :

    //= require bootstrap.min

이를 통해 언제든지 부트 스트랩을 업데이트 할 수 있으므로 gem이 업데이트 될 때까지 기다릴 필요가 없습니다. 또한이 접근 방식을 통해 자산 파이프 라인은 프로덕션에서 축소 된 버전을 사용합니다.


2
나는 동의한다. 또한 파일을 직접 삽입하면 자산을 미리 컴파일 할 때 (예 : Heroku로 푸시하는 경우) 문제가 덜 발생한다는 사실도 발견했습니다.
Amy.js 2013 년

26
축소 된 파일을 포함하면 어떤 이점이 vendor/assets/{stylesheets|javascripts}있습니까? 스프로킷은에 포함 된 파일을 축소해야합니다 app/assets/{stylesheets|javascripts}.
jrhorn424

16
이미지 및 글꼴 파일을 포함하는 방법은 무엇입니까?
wwli

5
@wwli-아래 내 대답을 참조하십시오. Glyphicon 및 글꼴을 추가하는 방법을 설명합니다.
rvg

4
bootstrap과 bootstrap.min을 모두 복사하는 이유는 무엇입니까?
JohnMerlino

62

많은 사람들이 알다시피 보석이 필요하지 않습니다.

취해야 할 단계 :

  1. 부트 스트랩 다운로드
  2. bootstrap/dist/css/bootstrap.css
    bootstrap/dist/css/bootstrap.min.css 

    에: app/assets/stylesheets

  3. bootstrap/dist/js/bootstrap.js
    bootstrap/dist/js/bootstrap.min.js 

    에: app/assets/javascripts

  4. 다음에 추가 : app/assets/stylesheets/application.css

    * = 부트 스트랩 필요

  5. 다음에 추가 : app/assets/javascripts/application.js

    // = 부트 스트랩 필요

그게 다입니다.새로운 멋진 부트 스트랩 템플릿을 추가 할 준비가되었습니다.


app/대신vendor/ ?

파일을 다음에 추가하는 것이 중요합니다. 앱 / 자산에 하므로 나중에 부트 스트랩 스타일을 덮어 쓸 수 있습니다.

나중에 custom.css.scss사용자 지정 스타일 로 파일 을 추가하려는 경우 . 다음과 같은 내용이 있습니다 application.css.

 *= require bootstrap                                                            
 *= require custom  

부트 스트랩 파일을 app / assets 에 배치하면 모든 것이 예상대로 작동합니다. 그러나 vendor / assets 에 배치 하면 부트 스트랩 파일이 마지막에로드됩니다. 이렇게 :

<link href="/assets/custom.css?body=1" media="screen" rel="stylesheet">
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet">

따라서 일부 사용자 지정은 Bootstrap 스타일이이를 재정의하므로 사용되지 않습니다.

이 이유

Rails는 여러 위치에서 자산을 검색합니다. 이 위치 목록을 얻으려면 다음을 수행하십시오.

$ rails console
> Rails.application.config.assets.paths

출력에서 앱 / 자산 이 우선하므로 먼저로드하는 것을 볼 수 있습니다 .


4
application.css 파일의 require 문의 순서가 경로 목록의 디렉토리 순서가 아니라 파일이로드되는 순서를 제어하지 않습니까? 경로의 순서는 일반적으로 경로 목록에 포함 된 여러 디렉토리에있는 경우로드 된 파일 gest 버전을 제어합니다. 그렇지 않은 경우 require 문의 순서가 어떻게 작동합니까?
Kickingbull 2014

2
축소 된 버전을 복사하지 마십시오. 그렇지 않으면 나중에 이중 포함을 받게됩니다 ( 'require_tree.'와 같은 방식으로 작동합니까?). 이 이중 포함으로 인해 booty gem 을 설치 한 후 드롭 다운을 열 수 없습니다 .
Kourindou Hime 2014

1
@Kourindou Hime의 댓글은 주목할 가치가있는 것 같습니다. .min 파일을 제거 할 때까지 드롭 다운을 열 수 없습니다.
Paco Abato 2016 년

35

이 답변은 gem을 사용하지 않고 Rails 앱에 Bootstrap 3을 설치하려는 사람들을위한 것입니다. 10 분도 채 걸리지 않는 두 가지 간단한 방법이 있습니다. 귀하의 필요에 가장 적합한 것을 선택하십시오. Glyphicons와 Javascript는 작동하며 Rails 4.1.0의 최신 베타에서도 테스트했습니다.

  1. Rails 4와 함께 Bootstrap 3 사용하기-Bootstrap 3 파일이 애플리케이션의 공급 업체 디렉토리에 복사됩니다.

  2. CDN의 Bootstrap을 Rails 애플리케이션에 추가-Bootstrap 3 파일은 Bootstrap CDN 에서 제공됩니다 .

위의 2 번이 가장 유연합니다. 레이아웃 도우미에 저장된 버전 번호를 변경하기 만하면됩니다. 따라서 3.0.0, 3.0.3 또는 이전 Bootstrap 2 릴리스에 관계없이 원하는 Bootstrap 버전을 실행할 수 있습니다.


이 작업을 수행 할 수없는 것 같습니다. localhost:3000/fonts/glyphicons-halflings-regular.svgChrome 콘솔에서 예제로 계속 검색 하고 글 리피 콘이 나타나지 않습니다 (404).
Steve

1
@Steve-나는 당신이 개발에 문제가 있고 당신이 위의 # 1을 선택했다고 가정했습니다. 정확하다면 Bootstrap 글꼴 디렉토리와 모든 내용을 /vendor/assets/프로젝트에 복사했는지 다시 확인합니다 . 또한 application.css를 확인하여 bootstrap.min이 필요하고 @ font-face 재정의가 있는지 확인해야합니다. 요즘 SCSS가 널리 사용되고 있습니다. 이를 사용하는 경우 @ font-face 재정의에서 'src : url'을 'src : asset-url'로 변경해야합니다. 게시물 하단에 도움이 될 수있는 샘플 프로젝트도 있습니다.
rvg

나는 글꼴에 문제가 없었습니다. 개발에서는 잘 작동했지만 프로덕션에서는 작동하지 않았습니다. 결국 공개 / 글꼴에 넣었습니다.
ChrisJ

22

Twitter는 이제 gem이 포함 된 sass-ready 버전의 부트 스트랩 을 제공하므로 Rails에 추가하기가 그 어느 때보 다 쉬워졌습니다.

gemfile에 다음을 추가하기 만하면됩니다.

gem 'sass-rails', '>= 3.2' # sass-rails needs to be higher than 3.2
gem 'bootstrap-sass', '~> 3.1.1'

bundle install 파이프 라인을 통해 파일을 사용할 수 있도록 서버를 다시 시작하십시오.

나침반 및 sass 전용 지원도 있습니다 : https://github.com/twbs/bootstrap-sass


감사. 초보자를위한 github readme의 핵심 사항입니다. "새 Rails 앱을 방금 생성 한 경우 대신 .css 파일이 함께 제공 될 수 있습니다.이 파일이 존재하면 Sass 대신 제공되므로 이름을 바꾸십시오 ..."
Brett


5

gem bootstrap-sass

bootstrap-sass는 자산 파이프 라인을 통해 Rails에 쉽게 추가 할 수 있습니다.

Gemfile에서 bootstrap-sass gem을 추가하고 sass-rails gem이 있는지 확인해야합니다. 기본적으로 새로운 Rails 애플리케이션에 추가됩니다.

gem 'sass-rails', '>= 3.2' # sass-rails needs to be higher than 3.2 gem 'bootstrap-sass', '~> 3.0.3.0'

bundle install 파이프 라인을 통해 파일을 사용할 수 있도록 서버를 다시 시작하십시오.

출처 : http://rubydoc.info/gems/bootstrap-sass/3.0.3.0/frames


3

저에게 가장 간단한 방법은

1) 부트 스트랩 다운로드 및 압축 해제 vendor

2) 구성에 부트 스트랩 경로 추가

config.assets.paths << Rails.root.join("vendor/bootstrap-3.3.6-dist")

3) 요구

CSS에서 *= require css/bootstrap

js에서 //= require js/bootstrap

끝난!

이 방법을 사용하면 다른 특별한 구성없이 글꼴이로드되며 자체 포함 된 디렉토리에서 부트 스트랩 파일을 이동할 필요가 없습니다.


3

이 분기를 사용하면 문제가 해결되기를 바랍니다.

gem 'twitter-bootstrap-rails',
  git: 'git://github.com/seyhunak/twitter-bootstrap-rails.git',
  branch: 'bootstrap3'

1

새로운 부트 스트랩 버전의 최신 gem은 anjlab 형식이라고 생각합니다 .

그러나 나는 그것이 당신이 할 때 simple_form과 같은 다른 gem과 현재 잘 작동하는지 모르겠습니다 rails generate simple_form:install --bootstrap. 당신은 새로운 부트 스트랩 버전에 맞도록 일부 이니셜 라이저 나 설정을 편집해야 할 수도 있습니다.


응답 해 주셔서 감사합니다. 그래서 내 Gemfile의 'gem anjlab'만 있으면 @ tbraun89?
megashigger 2013-08-22

Readme는 github 페이지에 있습니다. 현재 gem은 gem "anjlab-bootstrap-rails", "~> 3.0.0.1"입니다.
tbraun89 2013-08-22

readme에서 그들은 이것을합니다 :gem 'anjlab-bootstrap-rails', '>= 3.0.0.0', :require => 'bootstrap-rails'
tbraun89 2013-08-22

감사! 질문에 뭔가 추가했습니다. '편집'후 부분을 명확히 해주시겠습니까?
megashigger 2013 년

첫 번째는 github에서 직접 파일을로드하므로 번들 업데이트를 수행하면 최신 버전을 갖게되고 secound는 현재 버전 3.0.0.1 인 rubygems에서 gem을로드합니다. (2 일 전)
tbraun89 2013-08-22

0

나는 실제로 이것을 작동시키는 방법에 대해 머리를 거의 긁적 인 쉬운 해결 방법을 가지고있었습니다. 하하!

먼저 부트 스트랩 (컴파일 된 css 및 js 버전)을 다운로드했습니다.

그런 다음 모든 부트 스트랩 CSS 파일을 app/assets/stylesheets/.

그런 다음 모든 부트 스트랩 js 파일을 app/assets/javascripts/.

페이지와 왈라를 새로 고침했습니다! 방금 RoR에 부트 스트랩을 추가했습니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.