首页 文章

当我在 生产环境 中部署我的ror应用程序时,我收到了以下错误

提问于
浏览
1

在`gem_original_require'中:没有要加载的文件 - haml(MissingSourceFile)

但是这个宝石已经出现了 .

我也有这个路径的插件: - / home / techvant / rails_app / techease / vendor / plugins / haml / init.rb

这个init文件有以下代码: -

begin
     require File.join(File.dirname(__FILE__), 'lib', 'haml') # From here
   rescue LoadError
     require 'haml' # From gem
end

我需要解决这个错误请帮助 .

以下是错误跟踪 .

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require':没有要加载的文件 - 来自/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require的haml(MissingSourceFile) .rb:31:来自/ usr / lib / liby / gems / . 1.8 / gems / activesupport-2.3.2 / lib / active_support / dependencies.rb:521:来自/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb的innew_constants_in': 156:在/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib中的'from /home/techvant/rails_app/techease/vendor/plugins/haml/init.rb:4:inevaluate_init_rb'中来自/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/kernel/reporting.rb:11:insilence_warnings的/rails/plugin.rb:146:invaluation_init_rb'来自/ usr / lib / ruby / gems / 1.8 / gems / rails-2.3.2 / lib / rails / plugin.rb:142:在/usr/lib/ruby/gems/1.8/gems/rails-2.3.2的evaluate_init_rb'中/lib/rails/plugin.rb:48:inload'fr om /home/techvant/rails_app/techease/config/../vendor/plugins/siteninja/engines/lib/engines/plugin.rb:77:in load'来自/usr/lib/ruby/gems/1.8/gems/ rails-2.3.2 / lib / rails / plugin / loader.rb:38:inload_plugins'来自/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/plugin/loader.rb: 37:来自/usr/lib/ruby/gems/1.8的每个'来自/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/plugin/loader.rb:37:inload_plugins' /gems/rails-2.3.2/lib/initializer.rb:348:in load_plugins'来自/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:163:inprocess'来自/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:113:in发送'来自/usr/lib/ruby/gems/1.8/gems/rails-2.3.2 /lib/initializer.rb:113:inrun'来自/home/techvant/rails_app/techease/config/environment.rb:9来自/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require 'from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:inrequire'来自/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/depende ncies.rb:156:在/ usr / lib / ruby / gems中的'from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:521:innew_constants_in'中/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in require'from /usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server . rb:84来自/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:ingem_original_require'来自/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`requirex'from脚本/服务器:3

4 回答

  • 0

    您可以尝试解压缩宝石,使它们位于您的rails应用程序目录中,这将取消您的rails应用程序取决于系统中的本地宝石 . 干杯!

  • 0

    由于haml是一个gem,我将它放在environment.rb中:

    config.gem 'haml'
    

    然后,解压缩并将其添加到仓库:

    rake gems:install
    rake gems:unpack
    

    最后,删除你有的haml插件引用 .

  • 0

    尝试:

    gem update rails

    ...在服务器上,而不是您的开发机器上

  • 1

    这个问题我也遇到了很多麻烦 . 以下是我最终解决它的步骤 .

    首先,安装gem .

    config.gem 'haml'
    

    在您的environment.rb文件中 . 我实际上不得不把它放在我的环境/ development.rb和environments / production.rb(等)中,因为它抱怨不知道rails_env . 哪个不是最优的,但它有效 . 然后运行

    rake gems:install
    

    然后

    mkdir -p /vendor/plugins/haml
    cp vendor/gems/haml-2.2.0/init.rb /vendor/plugins/haml/init.rb
    

    然后重启rails服务器 .

相关问题