Ruby on Rails
자산 파이프 라인
수색…
소개
자산 파이프 라인은 JavaScript 및 CSS 자산을 연결하고 축소하거나 압축하는 프레임 워크를 제공합니다. 또한 이러한 자산을 CoffeeScript, Sass 및 ERB와 같은 다른 언어 및 전처리기에 쓸 수있는 기능을 추가합니다. 응용 프로그램의 자산을 다른 보석의 자산과 자동으로 결합 할 수 있습니다. 예를 들어, jquery-rails는 jquery.js의 사본을 포함하고 레일즈에서 AJAX 기능을 사용합니다.
갈퀴 작업
기본적으로 sprockets-rails
에는 다음과 같은 레이크 작업이 제공됩니다.
-
assets:clean[keep]
: 컴파일 된 오래된 자산을 제거합니다. -
assets:clobber
: 컴파일 된 애셋을 제거합니다. -
assets:environment
: 자산 컴파일 환경로드 -
assets:precompile
:config.assets.precompile
명명 된 모든 자산을 컴파일합니다.
매니페스트 파일 및 지시문
assets
initalizer ( config/initializers/assets.rb
)에는 미리 컴파일되도록 명시 적으로 정의 된 몇 개의 파일이 있습니다.
# Precompile additional assets.
# application.coffee, application.scss, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )
이 예제에서 application.coffee
및 application.scss
는 '매니페스트 파일'이라고 불립니다. 이 파일은 다른 JavaScript 또는 CSS 자산을 포함하는 데 사용해야합니다. 다음 명령을 사용할 수 있습니다.
-
require <path>
: Ruby의require
와 유사한require
지시어가require
. 경로의 파일에 대한 종속성을 선언하고 소스 파일 앞에 한 번만로드되도록하는 방법을 제공합니다. -
require_directory <path>
: 모든 파일이 단일 디렉토리에 있어야합니다. 중첩 된 디렉토리를 따르지 않으므로path/*
와 유사합니다. -
require_tree <path>
: 디렉토리에있는 모든 중첩 된 파일이 필요합니다. 그것의 glob equivalent는path/**/*
입니다. -
require_self
: 후속require
지시문 앞에 현재 파일의 본문을 삽입합니다. 인덱스 파일이 다른 종속성이로드되기 전에 정의되어야하는 전역 스타일을 포함하는 것이 일반적 인 CSS 파일에 유용합니다. -
stub <path>
: 파일이 포함되지 않도록 제거합니다. -
depend_on <path>
: 파일을 포함하지 않고 파일에 대한 종속성을 지정할 수 있습니다. 이것은 캐싱 목적으로 사용됩니다. 종속성 파일을 변경하면 소스 파일의 캐시가 무효화됩니다.
application.scss
파일은 다음과 같습니다.
/*
*= require bootstrap
*= require_directory .
*= require_self
*/
또 다른 예는 application.coffee
파일입니다. jquery
와 Turbolinks
를 포함하여 여기에 :
#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .
CoffeeScript를 사용하지 않고 일반 JavaScript를 사용하는 경우 구문은 다음과 같습니다.
//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .
기본 사용법
자산 파이프 라인을 사용하는 기본적인 두 가지 방법이 있습니다.
개발 모드에서 서버를 실행하면 서버가 자동으로 사전 처리되고 자산을 즉석에서 준비합니다.
프로덕션 모드에서는 애셋을 사전 처리, 버전 화 및 압축하고 컴파일하는 데이 메서드를 사용할 수 있습니다. 다음 명령을 실행하면됩니다.
bundle exec rake assets:precompile