3

导轨 3.2.2

运行 rake assets:precompile 时出现以下错误:

uninitialized constant Redirect

Redirect 是一个自定义中间件类,它将裸域请求从 mydomain.com 重定向到 www.mydomain.com。

我使用以下方法在 production.rb 中加载中间件:

config.middleware.use Redirect

redirect.rb 位于 lib/middleware/redirect.rb。我使用以下方法加载 application.rb 中的路径:

config.autoload_paths += %W(#{config.root}/lib/middleware)

当您运行应用程序时它运行良好,并且其他 rake 任务运行良好。但是运行 rake assets:precompile 似乎无法正确加载库。我首先注意到在 Heroku 上运行的问题,但我已经能够在本地重现没有问题。

有任何想法吗?谢谢!

4

2 回答 2

3

你可能已经config.assets.initialize_on_precompile = false设置了某个地方。

在设置与 Heroku 相关的配置后,我遇到了这个错误。要修复,我就require "#{Rails.root}/lib/my_middleware.rb"在我配置应用程序以使用中间件的行的正上方。

于 2012-09-13T03:56:06.597 回答
0

从 /lib 加载类并将其分配给::GLOBAL变量时,我遇到了同样的错误。

这是因为我忘记将它放在一个after_initialize块中,这就是我在开发中所做的。

config.after_initialize do
  ::GLOBAL = MyLib::MyClass.new
end

希望这对某人有帮助!

于 2012-11-20T17:37:01.553 回答