2012-09-05 5 views

답변

6

먼저 애셋이 애셋에 존재하는지 확인해야합니다. This scriptbuild.sh 스크립트 (다음에 언급) 이전에 실행됩니다. 사용자의 public/assets 폴더 (here is the reasoning behind this)에 대한 심볼릭 링크를 생성하려고 시도합니다. 디렉토리가 있더라도 rake 작업은 계속 작동합니다. 자산은 매번 누를 때마다 지워질 것입니다.

git 저장소를 누를 때마다 저작물을 컴파일해야합니다. Ruby 1.9 카트리지의 this script에 의해 처리됩니다 (서비스에 의해 실행되며 사용자는 제어 할 수 없습니다). 보시다시피, Gemfile이있는 한 bundle exec rake assets:precompile으로 실행됩니다 (모든 Rails 앱의 경우에 해당).

당신이해야 할 첫 번째 일은 .openshift/action_hooks을 확인하여 public/assets 디렉토리를 덮어 쓸 수있는 항목이 없는지 확인하는 것입니다. here과 비교할 수 있습니다.

다음해야 할 일은 실제로 OpenShift 호스트의 디렉토리를 확인하는 것입니다. 앱에 SSHing하여이 작업을 수행 할 수 있습니다 (instructions are here). 그런 다음 public/assets 디렉토리를 확인하십시오. 참고 : 일부 출력은 ....으로 단축되었습니다.

# First we make sure it is a symlink. 
> file $OPENSHIFT_REPO_DIR/public/assets 
..../app-root/runtime/repo/public/assets: symbolic link to `..../data//assets' 

# Then we see if there is anything in it 
> ls $OPENSHIFT_REPO_DIR/public/assets 
.... (should have a bunch of.js, .css, etc files) 

해당 디렉토리가 비어 있으면 자산을 컴파일하는 데 문제가있을 수 있습니다. git push 일 때 출력에주의를 기울여야하며 실패했다는 표시가 있는지 확인해야합니다 (git push 2>&1 | tee git_push.log과 같은 tee을 사용하여 출력을 캡처 할 수 있습니다). 디렉토리에 자산이있는 경우 these steps에 따라 로그를 확인하십시오.

여전히 문제가있는 경우 IRC channel으로 스윙하고 누군가가 직접 도와 줄 수 있어야합니다.

+0

멋진 답변 주셔서 감사합니다 :) 나는 더 많은 투표를 줄 수 있으면 좋겠 :) – phoenixwizard

관련 문제