我在Heroku雪松堆上托管我的Jekyll-based blog(github code)。
我通过my Rakefile构建了jekyll文件:
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
目录,这是Rack将从中提供文件的位置。
这已经工作了一年多了,并且在我博客的当前实时版本上工作正常(两周前发布):
$ 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 git@heroku.com: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
Internal Server Error
No such file or directory - _site/404/index.html
有谁知道为什么这会改变? Heroku有什么变化吗?或者我突然做了些蠢事?
答案 0 :(得分:0)
我不知道为什么这首先起作用,因为Heroku has a read-only file system。解决方案是在本地编译包含所有资产的站点,将它们检入Git,然后将完整的_site目录推送到Heroku。