没有在Heroku上创建的文件

时间:2013-12-14 16:46:28

标签: ruby heroku rake rack cedar

我在Heroku雪松堆上托管我的Jekyll-based bloggithub 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

site shows

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

有谁知道为什么这会改变? Heroku有什么变化吗?或者我突然做了些蠢事?

1 个答案:

答案 0 :(得分:0)

我不知道为什么这首先起作用,因为Heroku has a read-only file system。解决方案是在本地编译包含所有资产的站点,将它们检入Git,然后将完整的_site目录推送到Heroku。