乐者为王

Do one thing, and do it well.

no such file to load -- xxx (MissingSourceFile) on Heroku

终于解决掉了困扰我多日的一个问题。

部署在Heroku上的项目,在controller中require某个文件时总是出现no such file to load -- calc (MissingSourceFile)。

本地机器上运行的好好的,在Heroku上就出现Application error,百思不得其解,网上也没有找到类似问题的解决方法。

咨询Heroku的技术支持,几封邮件交流下来对方也没有办法(感觉Heroku的技术支持不咋的)。

今天把问题解决掉后再回过头来看,发现这其实是个非常简单的问题,就是Linux和Windows对待文件名大小写的差异。因为在Windows上是不区分大小写的,所以在controller中用require 'calc'来引入Calc.rb时是成功的,但是在Linux下就不可以。将文件名Calc.rb改成calc.rb再push到Heroku就把问题解决了。

就这么个问题竟然让我思考了几天,还真是郁闷啊!

Comments