2013-05-01 1 views
0

제 프로젝트에는 제 3 자 자바 스크립트와 CSS 파일이 vendor/assets/javascriptsvendor/assets/stylesheets 디렉토리 안에 있습니다. 개발 모드에서는 javascript_include_tagstylesheet_include_tag 메서드를 사용하여 해당 디렉토리 내의 에셋을 참조 할 수 있습니다.레일즈가 벤더 디렉토리 안에 자바 스크립트와 스타일 시트를 프리 컴파일하지 않는 이유는 무엇입니까?

그러나 rake assets:precompile 명령을 실행하면 해당 스크립트가 사전 컴파일되지 않아 프로덕션 환경에서 액세스 할 수 없습니다.

레이크 작업에 의해 vendor 디렉토리의 자산이 무시되는 이유는 무엇입니까?

답변

1

나는 내 자신의 질문에 대답 할 수있었습니다.

이것은 분명하지 않지만 이해가됩니다. application.cssapplication.js 파일을 제외하고 다른 모든 .js/.css 파일은 사전 컴파일 레이크 작업에서 무시됩니다. 따라서 스크립트와 스타일 시트가 application.js/.css 파일 안에 //= require name_of_script 규칙을 사용하여 참조되는 한 그들은 relavant 파일에 추가됩니다.

그러나 특정 스크립트를 application.js/.css 파일 안에 넣지 않으려면 config/environment/production.rb 또는 다른 relavant 런타임 환경 설정 파일 내에서이 줄을 사용하여 미리 컴파일 된 파일을 미리 컴파일해야 함을 명시 적으로 말해야합니다.

# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) 
config.assets.precompile += %w(morris.min.js raphael.min.js)