我试图要求一个位于 lib 中的文件(在我的 Rails 应用程序中)。
在开发中,这条线没有任何问题。
require "km"
但是,在 Heroku 中,我收到“没有要加载的此类文件”错误。
通过 Heroku 控制台,我在指定文件路径方面尝试了许多变体。例如:
require "lib/km"
require "./lib/km.rb"
等等。这是基于这些问题的答案,这表明问题是指定文件的路径。
我也尝试过添加这里建议的自动加载行,这似乎并没有解决它。
config.autoload_paths += Dir["#{config.root}/lib/**/"]
http://www.williambharding.com/blog/technology/rails-3-autoload-modules-and-classes-in-production/
我如何告诉 Rails 找到 lib 文件?为什么需要在开发和生产中的行为有所不同?
更新:
这个问题原来与git有关。原来的文件名是“KM.rb”,后来改成了“km.rb”。但是,git 没有接受大小写更改,因此更改从未被推送到 Heroku 环境中。
一个关键步骤是在 Heroku 控制台中使用 Ruby Dir 命令来调查文件结构并确认 Heroku 环境中的文件名。