ローカル環境である程度動くRailsアプリができたので、HerokuにデプロイしてみるとCSSなどが読み込まれませんでした。そのとき調べてみて「config.assets.compile = false」を「true」に変更することで読み込まれるようになることがわかりました。
この「config.assets.compile」ですが、動的にPreCompileをしてくれるオプションとのことで、Herokuなどの本番環境で動かすときは、「false」にして自分でPreCompileする方がいいみたいです。
PreCompileは次のコマンドで実行できます。
$ rake assets:precompile
このコマンドを実行するとpublicフォルダ内に実行結果のファイルが作成されるみたいです。
また、precompileの対象となるファイルはこんな感じで指定する必要があるみたいです。
# Do not fallback to assets pipeline if a precompiled asset is missed. config.assets.compile = false config.assets.precompile += %w( sample.js )
1つ1つ指定するのは大変なのでこんな書き方もできるそうです。
config.assets.precompile += %w( *.js *.css *.less *.erb )
ちょっとまだよくわかっていないところもあるので、とりあえずこんな感じの仕組みがある...ということで。。。Railsの勉強用なら「config.assets.compile = true」でもとりあえず大丈夫かなと思います。
あと、「rake assets:precompile」コマンドを実行したタイミングだと思うのですが、次の隠しファイルが作成されていました。
この.sprockets-manifest-xxx.jsonというので読み込みファイルを管理しているみたいです。後から「config.assets.compile = true」に戻すときはこのファイルを削除しておく必要がありました。