2011-09-26 3 views
0

haml 및 livereload 플러그인으로 가드를 성공적으로 설치했습니다. 실행중인 가드 셸에서 둘 다 실행 중일 때 Enter 키를 누르면 haml이 성공적으로 html로 컴파일 된 다음 청취 브라우저에 제공됩니다.Haml, 라이브로드 가드가 변경 사항을 컴파일하지 않음

그러나 haml 파일을 편집 할 때만 변경 사항을 저장하면 livereload는 생성 된 동일한 .html로 브라우저를 다시로드하기 만합니다. .haml -> .html을 다시 컴파일하지 않고 브라우저에 제공하십시오.

My Guardfile은 아래에 있습니다. 이 설정에서 내가 누락 된 부분은 무엇입니까? i) 가드 셸에서 enter 키를 누르면 생성 된 html이 제공됩니다. ii)하지만 haml 파일의 변경 사항을 저장하면 haml을 컴파일하지 않고 이전 html 만 제공합니다.

PS

guard 'haml', :input => 'public', :output => 'public' do 
    watch(%r{^public/.+\.html\.haml}) 
end 
guard 'livereload' do 
    watch(%r{.+\.(css|js|html)}) 
end 

감사합니다 - 이것은 레일 프로젝트가 아닙니다. 원시 가드를 사용하여, guard-haml & guard-livereload 보석

+0

저장시 HTML 파일이 변경되지 않았습니까? LiveReload는 css/js/html 파일 변경에만 적용되도록 구성되어 있으므로 HAML을 저장할 때 브라우저를 다시로드하면 HTML이 변경된다는 것을 암시합니다. –

+0

예, 알아 챘습니다. 1) haml은 html로 컴파일되지 않지만 2) html 파일은 여전히 ​​제공되고 있습니다 (파일이 어떤 식 으로든 영향을 받았다는 의미입니다). 그것은 이것에 대한 당황스러운 것입니다. – Nutritioustim

+0

가드 - 라이브로드에 대한 티켓을보고하는 것이 더 나을 것 같네요. (https://github.com/guard/guard-livereload/issues/). –

답변

1

Thibaud ('guard'저자)의 도움으로이 작업을했습니다. 기본적으로 파일이 제공되는 디렉토리 아래에서 감시를 실행했습니다.

내 프로젝트 트리 "는 등 루트/공공/CSS/"과 같은, 나는 "루트"에서 경비를 실행하고, (가드 -w 대중을 볼 수있는 디렉토리로 "공공"로 설정되었다 /). 하지만 GuardFile을 public /로 업데이트하고 옮겼습니다. 이제 haml이 컴파일되고 원하는대로 제공됩니다.

guard 'haml' do 
watch(/^.+\.html\.haml$/) 
end 
guard 'livereload' do 
    watch(/^.+\.html$/) 
end 
관련 문제