乐者为王

Do one thing, and do it well.

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

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

部署在Heroku上的项目,在控制器中require 'calc'时总是出现:

1
no such file to load -- calc (MissingSourceFile)

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

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

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

就这么个大写字母竟然让我思考了几天,还真是郁闷啊!

Comments