2012-01-18 2 views
3

저는 heroku로 밀어 넣으려고하는 레일 3.1 앱이 있습니다. 푸시가 작동하는 동안 자산을 ​​긁어 모으려고하면 오류가 발생합니다. 오류가 발생합니다.`rake assets : precompile`을 실행할 때 오류가 발생했습니다.

Unexpected token punc, expected punc (line: 11225, col: 7, pos: 321149) 
undefined 
(in /Users/Matt/Orchive/Orchive/app/assets/javascripts/application.js) 

그러나이 application.js 파일에는 몇 가지 의견 만 있습니다. 여기있다 : 난 정말 자산을 이해하지

// This is a manifest file that'll be compiled into including all the files listed below. 
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically 
// be included in the compiled file accessible from http://example.com/assets/application.js 
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 
// the compiled file. 
// 
//= require jquery 
//= require jquery_ujs 
//= require_tree 

하지만 밀어 전에 터미널에서 rake assets:precompile을 실행하는 노력이 큰 오류

/Users/Matt/.rvm/rubies/ruby-1.9.2-p180/bin/ruby /Users/Matt/.rvm/gems/ruby-1.9.2-p180/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets 
rake aborted! 
Unexpected token punc, expected punc (line: 11225, col: 7, pos: 321149) 

undefined 
(in /Users/Matt/Orchive/Orchive/app/assets/javascripts/application.js) 

Tasks: TOP => assets:precompile:primary 
(See full trace by running task with --trace) 
rake aborted! 
Command failed with status (1): [/Users/Matt/.rvm/rubies/ruby-1.9.2-p180/bi...] 

Tasks: TOP => assets:precompile 
(See full trace by running task with --trace) 
있어

나는 이것을 편집하고 무엇을 그 변경할 수 있습니다 더 도움이된다면 --trace으로 표시됩니다. 이 방법은 일반적인 방법으로 쉽게 해결할 수없는 오류라고 생각합니다.

+0

오류의 원인이되는 application.js 행이 도움이 될 수 있습니다. 이상한 부분 인 – sosborn

+0

의 경우 app/assets/javascript/application.js에 주석 만 포함됩니다. – Vasseurth

+0

그 디렉토리에 다른 javascript 파일이 있습니까? – sosborn

답변

5

이 URL을 보면 거의 같은 오류입니다. https://github.com/resolve/refinerycms/issues/1186

수정은 여기에 있습니다 : https://github.com/resolve/refinerycms/pull/1189

요약 : 당신이 당신의 application.js 파일에 어딘가에 '쉼표'기호 또는 '세미콜론'기호가 누락되었습니다. 다음 명령을 로컬로 실행하는 동안 여기 로그인 전체 추적 :

bundle exec rake assets:precompile --trace 
+0

refinerycms – Vasseurth

+0

누가 refinerycms를 사용하고 있다고 말 했나요? 오류 및 오류 원인을 확인하십시오! 응용 프로그램에서 쉼표 나 세미콜론이 누락되었습니다.js 파일 또는 application.js 파일에 포함 된 파일 (예 : 모든 단일 파일이 javascript 폴더에 포함된다는 것을 의미 함)을 사용하는 것과 같습니다. : –

+0

또한이 명령의 출력을 붙여 넣습니다. 'bundle exec rake assets : precompile --trace' –

2

나의 제안. require_tree 행을 제거하십시오. 과도한 경향이있어 더 많은 문제를 만듭니다. 디렉토리에 모든 것을 추가하는 것이 아니라 파일을 특별히 요구하는 것이 훨씬 낫습니다.

http://guides.rubyonrails.org/asset_pipeline.html#manifest-files-and-directives

설명.

쉼표가 잘못 배치되었습니다. 또는 세미콜론. "그러나이 application.js 파일이 일부 포함되어 있음을, 당신이 언급 한

//= require jquery 
//= require jquery_ujs 
//= require_tree 

귀하의 질문에 상대 : 그것은 다른 파일에 아마,하지만 주목할만한 라인이 require_tree 라인, 그것은 JQuery와 또는 jquery_ujs에있어 매우 확률이 낮다 코멘트." 그것들은 코멘트가 아닙니다! 그것들은 실제로 그 파일들을 필요로하고 그것들을 포함하고 있습니다. Rails와이 경우 Sprockets의 마술은 자바 스크립트 파일을 작성할 수 있고 상단에 모든 파일을 포함 할 필요가 있다는 것입니다. 이렇게하면 jQuery와 같은 공급 업체 라이브러리를 포함 할 수 있지만 하나의 javascript 파일로 작업하면됩니다.

위의 주석은 jquery, jquery 헬퍼 라이브러리, require_tree는 javascript 디렉토리 안에있는 다른 모든 파일을 포함합니다. 로컬 컴퓨터에서 웹 사이트를 열고 소스를 확인하십시오. 기대하지 않았던 몇 가지 추가 자바 스크립트 파일이있을 것입니다.

관련 문제