2012-03-30 1 views
9

나는이 HTML과 자바 스크립트 라이브러리 외부를 포함하고있다 : 나는 vendor/assets/javascripts이있는 곳이라는 인상이 파일을 참조해야한다고했다 얻을 레일 3.1 자산 파이프 라인 문서와 토론을 통해 독서에Rails 3.1 - 어떻게 외부 자바 스크립트 라이브러리를 vendor/assets/javascript에 포함 시키나요? 의해 복수의 뷰에서

<script type="text/javascript" 
     src="http://static.jstree.com/v.1.0pre/jquery.jstree.js"> 
</script> 

. 파일 (jstree.js)의 복사본을 다운로드하여 해당 디렉토리에 저장할 수 있다고 생각합니다. 그러나 나는 그것의 로컬 복사본을 만드는 대신 프로젝트 사이트에서로드 된 싶습니다.

jstree.js의 복사본을 원격 서버에서 가져 오려면 vendor/assets/javascript에 무엇을 넣어야합니까? 일종의 원격로드 코드로 .js 파일을 생성합니까? 가장 좋은 방법에 대한 모든 접근법 및/또는 혼란이있는 것으로 보입니다 (이 질문에 대한 답변의 긴 목록 참조 : How do I include a JavaScript file in another JavaScript file?)

"Rails 표준"규칙/라이브러리/수행중인 프로세스가 있습니까? 이? 저는 자바 스크립트 초보자입니다. 명시 해주세요. 고마워요.

답변

10

아니요, 자산 폴더의 원격 파일에 "참조"를 넣을 수는 없습니다. 사본을 다운로드하여 저작물에 넣거나 <script> 태그로 원격 파일을 참조하십시오.

복사본이있는 것은 좋지 않습니다. 적어도, 당신은 그것이 작동하고 파일이 변경되지 않았다는 것을 안다. 원격 파일을로드하면 모든 종류의 놀라움이 발생할 수 있습니다.

+3

감사합니다. 내가 명백한 것을 놓치지 않았는지 확인하고 그 사실을 확인했다. 로컬 복사본을 만드는 것이 좋은 아이디어라고 생각하지 마십시오 (프로덕션을 제외하고). 라이브러리는 변경되지 않는 "안정적인"버전을 사용하는 것을 배웠으므로 그렇게 신경 쓰지 않습니다. Rails가 "참조"시스템 (Gemfile과 같은 것)을 지원한다면 dev/test/production에서 다양한 JS 라이브러리를 쉽게 유지 관리 할 수있었습니다. 수동으로 파일을 다운로드/구성 할 필요가 없으며 스프로킷 혼동을 피할 수 있습니다. 원격 라이브러리의 새 버전에 대해 매우 쉽게 dev/test 할 수 있습니다. –

+2

모든 JS 파일을 로컬에 저장하는 것이 좋습니다. 소셜 버튼과 같은 타사 서비스를 사용하면 서비스를 변경하면 디버그하는 데 많은 어려움이있을 수 있습니다. –

+0

원격으로 저장된 JS 파일의 Gemfile에 +1. @Don은 배포 당 원격 다운로드를 포함 할 수도 있지만 스프로킷을 통해 로컬로 제공합니다. – Trip

관련 문제