![](/img/trans.png)
[英]Error when running rails s “require cannot load such file, rescue in <top (required)> & block in require”
[英]Rails Require `No Such File to Load` Error When Running in Production
在development
模式下本地运行时,我的rails应用程序可以工作。 当我尝试在production
模式下运行它时,在本地以及尝试设置AWS Ubuntu服务器时都遇到此问题。
RAILS_ENV=production rails s
=> Booting Puma
=> Rails 5.1.4 application starting in production
=> Run `rails server -h` for more startup options
Exiting
/usr/local/lib/ruby/gems/2.4.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require': No such file to load -- ../../config/environment.rb (LoadError)
我无法确切了解相对路径相对于什么。 在myrailsapp/config/environment.rb
有一个文件,指出了require_relative 'application'
。 在同一目录中有一个名为application.rb
的文件。
我不明白红宝石在寻找什么,或者为什么找不到它。
您的应用正在尝试加载../../config/environment.rb
但找不到它。 它似乎特定于您的生产环境,因此可能在/config/environment/production.rb或其他一些特定于生产的配置/文件中进行了设置,这些文件在启动时已初始化。
另一个问题是#require
需要一条绝对路径。 要从相对路径创建绝对路径,请使用
require_relative "../config/environment"
或类似的东西
require File.expand_path('../../config/environment', __FILE__)
编辑:更多细节。 令人反感的require '../../config/environment'
位于OP自己编写的附带脚本中,例如,它不是模型,视图,控制器或其他由Rails创建的文件,并且未被Rails应用程序引用。 但是,仅在生产模式下,Rails似乎会在其目录中自检包括该自定义脚本的rb文件,并引发错误。 修复有两个方面。
myapp/app/model
放置任何非特定于应用程序的自定义文件,而不要在应用程序根目录下为此类事情创建您自己的目录。 require_relative
而不是require
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.