2013-12-14 10 views
2

I는 Heroku 삼나무 더미에 Jekyll-based blog (github code)을 호스트합니다. Heroku에서 파일이 생성되지 않음

나는 my Rakefile을 통해 지킬 파일을 구축 :

namespace :assets do 
    desc 'Precompile assets' 
    task :precompile do 
    sh "bundle exec sass --update _scss:_css --style compressed" 
    sh "bundle exec jekyll" 
    end 
end 

이것은 랙에서 파일을 제공 곳입니다 _site 디렉토리에 파일을 출력합니다.

은 년 이상 근무하고 있으며, 내 블로그의 현재 라이브 버전에서 잘 작동 (보름 전에 출시) :

$ heroku run ls _site                         
Running `ls _site` attached to terminal... up, run.9360 
2012 404 apple-touch-icon.png back-end css   front-end index.html politics public-domain.txt rss.xml 
2013 410 assets    config favicon.ico go.sh  personal postsbytag robots.txt   sitemap.xml 

을하지만, 내가 지금 무엇을 해제하려고 할 때마다, 또는 new app에 코드의 동일한 버전을 출시의 _site 디렉토리를 생성하지 않는 것 :

$ git push git push [email protected]:robinwinslow-dev.git 
... 
http://robinwinslow-dev.herokuapp.com deployed to Heroku 
... 
$ heroku run ls _site --app robinwinslow-dev 
Running `ls _site` attached to terminal... up, run.2577 
ls: cannot access _site: No such file or directory 

그리고 site shows을 :

Internal Server Error 
No such file or directory - _site/404/index.html 

이 변경된 이유를 아는 사람이 있습니까? Heroku에서 바뀌 었나요? 아니면 갑자기 뭔가 바보 같은 짓을 한거야?

답변

0

이유가 무엇인지 알지 못합니다. 왜냐하면 Heroku has a read-only file system이 처음부터 작동했기 때문입니다. 솔루션은 모든 자산을 로컬로 포함하여 사이트를 컴파일하고 Git으로 확인한 다음 전체 _site 디렉토리를 Heroku로 푸시하는 것입니다.

+0

"이 기사는 Bamboo 스택의 응용 프로그램에 적용됩니다. 가장 최근의 스택 인 Cedar의 경우 임시 쓰기 가능한 파일 시스템에 대한 참고 사항을 참조하십시오." 시다 (Cedar) 스택을 사용하고 있기 때문에 파일 시스템이 일시적이어야합니다. Rake가 실행되는 한 (dyno가 회전 할 때마다) 파일이 있어야합니다. –

+0

"dyno의 수명 동안 실행중인 프로세스는 파일 시스템을 임시 스크래치 패드로 사용할 수 있지만 기록 된 파일은 다른 dyno의 프로세스에서 볼 수 없으며 기록 된 파일은 dyno가 중지되거나 다시 시작될 때 삭제됩니다." –

+0

@RobinWinslow 나는 정정! –