2012-07-28 3 views
0

내 CoffeeScript 파일이 API 키 값과 같은 환경 변수에 액세스하는 시나리오가 있습니다. 이것은 지역적으로는 잘 작동하지만 heroku로 밀어 넣을 때 작동하지 않습니다. 파일은 myfile.js.coffee.erb 같은coffeescript 파일의 heroku 환경 변수에 액세스

나는 나는 값이 Heroku가 설정되어 알고 난 트리플 맞춤법을 검사 한이

api_key = '<%= ENV['SERVICE_API_KEY'] %>' 

같은 값을 설정하고 이름

등 내가 결과 자바 스크립트 파일이

var api_key; 
api_key = ""; 

처럼 보인다 이후가 처리되는 알고 내가 말할 수있는 내 자산을 사전 컴파일 할 때해야 할 뭔가가 있나요 그것은 환경 변수에 액세스하려면? 나는 CoffeeScript와 Rails 자산 파이프 라인을 처음 접했다는 것을 인정한다. 이 일을하는 또 다른 방법이 있습니까? 분명한 이유로 파일에 파일을 포함하고 싶지 않습니다.

+0

왜 파일을 포함 싶지 않아? –

+0

소스에서 내 api 키를 원하지 않기 때문에 프로젝트를 오픈 소스로 만들고 있습니다. –

+0

아, 잡았다; 내가 파일에 파일을 임베딩한다는 것을 오해했습니다. –

답변

4

API 키가 자바 스크립트 파일이든 HTML 파일이든 관계없이 관심있는 사용자에게 표시 될 수 있으므로 모든 요청에 ​​대해 새로운 .js 파일을 생성하고 싶지 않으므로 가장 쉬운 해결책은 같은 문제가 발견되면 키를 layout.html.erb 파일에 넣는 것입니다.

보트를 뜨는 것이 무엇이든간에 데이터 태그를 사용하여 스크립트 태그에 넣을 수는 있지만 작동하지만 동적 변수의 이점을 얻고 파일을 적게 렌더링해야합니다.

그리고 여전히 <%= ENV['api_key'] %>을 사용할 수 있습니다. js (또는 커피)에서 변수를 가져와야하지만 꽤 쉽습니다.

+0

네, 창 설정과 같은 생각이 들었습니다. 레이아웃에서 API_KEY를 사용하거나 본문 데이터 속성을 설정하고 그런 식으로 액세스하고 필요할 경우 해당 경로로 이동하게 될 것입니다. 나는 내가 로컬로 할 수 있기 때문에 Heroku에서 이것을 달성 할 수있는 방법이 있어야한다고 생각했다. –

+0

당신은 언제나 heroku ('heroku run bundle exec rake assets : precompile')에서 애셋을 컴파일 해 볼 수 있었는데, 제가 시도하지는 않았지만이 같은 문제가있었습니다. 그리고 나는 데이터 속성을 이용하여 해결했습니다. 내 견해. –

+0

이미 시도했지만 작동하지 않았습니다. 아마 data-attr 라우트로 갈 것이지만 heroku에서 이것을 해결할 방법이 있다면 여전히 관심이 있습니다. –

관련 문제