2

Heroku cedar スタックでJekyll ベースのブログ( github コード)をホストしています。

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 がファイルを提供するディレクトリにファイルが出力されます。

これは 1 年以上機能しており、現在ライブ バージョンのブログ (2 週間前にリリース) では問題なく機能しています。

$ 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

ただし、今何かをリリースしようとしたり、同じバージョンのコードを新しいアプリにリリースしようとしたりするたびに、_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 で何か変更がありましたか? それとも私は突然愚かなことをしましたか?

4

1 に答える 1

0

Herokuには読み取り専用のファイルシステムがあるため、これが最初に機能した理由はわかりません。解決策は、すべてのアセットを含むサイトをローカルでコンパイルし、それらを Git にチェックインしてから、完全な _site ディレクトリを Heroku にプッシュすることです。

于 2013-12-15T14:20:34.347 に答える