0

我试图要求一个位于 lib 中的文件(在我的 Rails 应用程序中)。

在开发中,这条线没有任何问题。

require "km"

但是,在 Heroku 中,我收到“没有要加载的此类文件”错误。

通过 Heroku 控制台,我在指定文件路径方面尝试了许多变体。例如:

require "lib/km"
require "./lib/km.rb"

等等。这是基于这些问题的答案,这表明问题是指定文件的路径。

Rails,Heroku 不加载我的库

Heroku 控制台没有在 /lib 中加载文件?

我也尝试过添加这里建议的自动加载行,这似乎并没有解决它。

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 环境中的文件名。

4

1 回答 1

0

我收到“没有要加载的文件”错误,并发现我在 require 语句中的大小写错误

  require_relative './place/Places.rb'

当实际文件名places.rb 在 Windows 上运行良好时,因为它不区分大小写

于 2020-11-28T04:17:06.477 回答