개발 서버를 다시 시작한 경우에도 내 js.erb 파일을 다시 생성하지 않습니다. 서버를 다시 시작할 때마다 자산 파이프 라인이 모든 자바 스크립트 자산을 다시 생성하도록 강제 할 수있는 방법이 있습니까?애셋 파이프 라인 강제 js.erb 다시 컴파일
실제 .js.erb 소스 파일을 변경하면 다시 컴파일되지만 코드는 데이터베이스에서 가져 와서 서버 재시작간에 변경 될 수있는 시드 된 데이터를 읽습니다.
개발 서버를 다시 시작한 경우에도 내 js.erb 파일을 다시 생성하지 않습니다. 서버를 다시 시작할 때마다 자산 파이프 라인이 모든 자바 스크립트 자산을 다시 생성하도록 강제 할 수있는 방법이 있습니까?애셋 파이프 라인 강제 js.erb 다시 컴파일
실제 .js.erb 소스 파일을 변경하면 다시 컴파일되지만 코드는 데이터베이스에서 가져 와서 서버 재시작간에 변경 될 수있는 시드 된 데이터를 읽습니다.
늦게 전화를 걸지만이 문제가 여기 저기에 있었고 실제로 그것에 짜증이났습니다. 조금 파고 들었습니다. 여기 내 솔루션입니다 :
서버를 다시 시작에의 SCSS 및 기타 캐시 자산을 날려 및 재 컴파일을 강제 rm -rf tmp/cache/*
.
Rake를 사용하여 서버를 다시 시작하거나 사용하려는 경우 rake assets:clean
을 대신 실행할 수 있습니다.
은 물론, 일이 당신이 내 질문을 잘못 해석하고 생각
서버가 시작되기 전에 자산 파이프 라인 내에서 실행되는 루비를 생각해보십시오. 이는 자산 사전 컴파일 단계를 통해 프로덕션 환경에서 실제로 발생하기 때문에 (그리고 개발 과정에서 파일이 변경되면 새로 고칩니다. 설명 됨). 이 경우 코드를 컨트롤러 및 app/views 디렉토리 (html.erb/js.erb)에 리팩터링하여 모든 요청에 대해 코드가 실행되도록 할 수 있습니다.
... 비트에 의해 서버를 다시 시작 느리게,하지만 주요 고통 지점의 제거를위한 가치가있을 수 있습니다. JS가 의존하는 시드 데이터가 변경되면 서버를 다시 시작합니다 (국가 => 상태 매핑과 같은 정적 인 요소). 내 문제는 서버에서 * 재시작 * JS에서 재생성되지 않습니다. 나는 그것을 잡아 내기 위해 실제 소스 파일을 변경해야한다. (어떤 종류의 해싱을하고 있다고 추측한다.) – spike
네 - 지금 당황합니다. 개발 환경에서 config.assets.debug를 true로 설정 했습니까? 그것을 가정하지 않으면 https://github.com/wavii/rails-dev-tweaks에서 레일이 레일에서하는 일에 대한 단서를 찾을 수 있습니다. 그러나 문제가 해결되지 않을 것이라고 생각합니다. 상자는 애셋을 컴파일 할 때 자주 사용되지 않으므로 –
yea'config.assets.debug'가 설정되었습니다. 자원에 감사드립니다. 좀 더 파고 드리겠습니다. – spike
니스! 이 작동합니다. – spike