2009-10-04 2 views
1

저는 Capistrano and Rails 2.3.4를 사용하고 있습니다. 이미 배포를 완료했습니다 : 원격 서버에 콜드. 이제 로컬 상자에서 레이아웃 파일을 변경하고 저장소 (Netbeans 6을 IDE로 사용)에 커밋했습니다. 필자는 cap 배포를 입력하고 Capistrano는 명령을 실행하고 체크 아웃되었고 가장 최신 버전의 코드를 배포했다고 알려줍니다. 그러나 서버에서는 변경 사항이 존재하지 않으며 레이아웃 파일을 보면 그냥 커밋되고 배포 된 것 아닌 이전 버전을 사용하고있었습니다.왜 Capistrano가 SVN에서 내 코드의 최신 버전을 체크 아웃하지 않습니까?

누구나이 경험이 있으십니까?

편집 : 이상한 점은 일부 이미지 파일을 변경 한 것과 은 서버에서 업데이트되었지만 내가 수정 한 HTML 레이아웃이 아니라는 것입니다. 쿠키 문제 일 수 있습니까?

EDIT2 : 리포지토리 (ProjectLocker를 사용하고 있습니다.)를 확인했는데 코드가 수정되었는지 확인했습니다. 이 문제는 카피 스트라 노가 그것이라고 말하고 어떤 오류도보고하지 않고 있지만 체크 아웃하지 않는다는 것입니다. 그것은 때때로 작동

# Application 
set :application, "myapp" 
set :deploy_to, "/var/www/html/#{application}" 

# Settings 
default_run_options[:pty] = true 
set :use_sudo, true 

# Servers 
set :user, "deploy" 
set :domain, "111.111.111.111" 
set :runner, "deploy" 
server domain, :app, :web 
role :db, domain, :primary => true 

# SVN 
set :repository, "http://myhosting.com/svn/myapp/trunk" 
set :scm_username, "[email protected]" 
set :scm_password, "secret" 
set :checkout, "export" 

# Passenger 
namespace :passenger do 
    desc "Restart Application" 
    task :restart do 
    run "touch #{current_path}/tmp/restart.txt" 
    end 
end 

after :deploy, "passenger:restart" 

, 그것은 보인다

여기에 (물론, 스크럽) 내 deploy.rb 파일입니다. 예를 들어, 이전에 코드를 약간 변경하고 괜찮 았는지 확인했습니다. 내 database.yml 파일을 체크 아웃하지 않는 문제가 있었다; 나는 그것을 서버에서 편집해야만했다.

+0

deploy.rb 파일을 첨부 할 수 있습니까 (시스템의 모든 IP 및 다른 참조를 제거해야합니다). 범인을 찾는 데 도움이 될 수 있습니다. – Ariejan

답변

3

여기 어두운 곳에서 촬영했는데 실제로 레이아웃 파일을 보았습니까? 아니면 웹 사이트를 방문한 다음 웹 페이지 소스를 보았습니까?

프로덕션 환경에서 레이아웃이 캐싱되면 (config.action_controller.perform_caching = true) 서버를 재부팅해야합니다. 위의 설정이 false로 설정되어 있기 때문에 기본적으로 개발 모드에서는 발생하지 않습니다.

자세한 내용은 this을 참조하십시오.

+0

서버 자체에 vi로 레이아웃 파일을로드했는데 변경 사항이 없습니다. 그래서 파일을 바꿀 때마다 아파치를 재부팅해야합니까? 흠 .. RoR 응용 프로그램과 함께 제공되는 동일한 서버에 다른 PHP 기반 시스템이 있기 때문에 그다지 좋지 않을 것입니다. 그리고 Apache를 재부팅하면 몇 초 동안 중단 될 것입니다. Apache를 다시 시작해야하는 동시에 Apache를 사용하는 사람들이있는 경우에는 좋지 않습니다. –

+0

글쎄, 나는 너무 일찍 말했다. 지금 페이지를로드하고 변경 사항이 있기 때문에 캐시되는 것 같습니다. 이상하게도 파일 자체가 변경 사항을 표시하지 않았습니다. 그래도 전체 서버를 다시 시작하고 다른 응용 프로그램에서 위험을 감수해야한다면 문제가 발생할 수 있습니다. –

+0

tmp/restart.txt 파일을 작성하여 Apache를 다시 시작하지 않고 응용 프로그램을 다시 시작할 수 있습니다. $ touch tmp/restart – JRL

관련 문제