rails assets precompile

在自己的项目中用了bootstrap-sass,但是在heroku上跑会出现一个问题,没有找到assets。

后来的解决办法是每次上传到heroku上之前都执行以下 rake assets:precompile,把assets编译以下,然后上传静态文件。

一段时间后又遇到一个问题,每当我想用glyphicons时就遇到问题了,找不到woff文件,原因是我precompile时,把bootstrap文件夹下的4个glyphicons文件也加了md5的编码。可是heroku的production环境中的assets pipeline并没有托管这4个文件,所以没有去读取manifast中的对应关系,而是直接找的文件名。所以总是404。

最开始找到原因后,直接在precompile后把4个文件名后的md5删掉了。结果成功生成了glyphicon。

后来仔细研究以下发现我真二了,直接把production.rb中的config.assets.compile设置为true。这样当用户请求不到某个assets时,assets pipeline会返回头编译这个文件,然后返回给用户。否则它只会编译application中的文件。