簡體   English   中英

Rails 6,Heroku:NameError:未初始化的常量機架::Cors

[英]Rails 6, Heroku: NameError: uninitialized constant Rack::Cors

我正在嘗試將我的 API 部署到 Heroku 但它一直給我這個錯誤NameError: uninitialized constant Rack::Cors

這是我的cors.rb文件

Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins '*'

    resource '*',
             headers: :any,
             methods: %i[get post put patch delete options head]
  end
end

這是 Hroku 構建日志

-----> Building on the Heroku-20 stack
-----> Using buildpacks:
       1. heroku/nodejs
       2. heroku/ruby
-----> Node.js app detected
       
-----> Creating runtime environment
       
       NPM_CONFIG_LOGLEVEL=error
       USE_YARN_CACHE=true
       NODE_VERBOSE=false
       NODE_ENV=production
       NODE_MODULES_CACHE=true
       
-----> Installing binaries
       engines.node (package.json):  unspecified
       engines.npm (package.json):   unspecified (use default)
       engines.yarn (package.json):  unspecified (use default)
       
       Resolving node version 16.x...
       Downloading and installing node 16.15.1...
       Using default npm version: 8.11.0
       Resolving yarn version 1.22.x...
       Downloading and installing yarn (1.22.19)
       Installed yarn 1.22.19
       
-----> Installing dependencies
       Installing node modules (yarn.lock)
       yarn install v1.22.19
       [1/4] Resolving packages...
       [2/4] Fetching packages...
       [3/4] Linking dependencies...
       [4/4] Building fresh packages...
       Done in 14.52s.
       
-----> Build
       
-----> Pruning devDependencies
       yarn install v1.22.19
       [1/4] Resolving packages...
       [2/4] Fetching packages...
       [3/4] Linking dependencies...
       [4/4] Building fresh packages...
       warning Ignored scripts due to flag.
       Done in 2.82s.
       
-----> Caching build
       - yarn cache
       
-----> Build succeeded!
-----> Ruby app detected
-----> Installing bundler 2.3.10
-----> Removing BUNDLED WITH version in the Gemfile.lock
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.7.5
-----> Installing dependencies using bundler 2.3.10
       Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
       Your Gemfile lists the gem devise (>= 0) more than once.
       You should probably keep only one of them.
       Remove any duplicate entries and specify the gem only once.
       While it's not a problem now, it could cause errors if you change the version of one of them later.
       Your Gemfile lists the gem devise-jwt (>= 0) more than once.
       You should probably keep only one of them.
       Remove any duplicate entries and specify the gem only once.
       While it's not a problem now, it could cause errors if you change the version of one of them later.
       Your Gemfile lists the gem rack-cors (>= 0) more than once.
       You should probably keep only one of them.
       Remove any duplicate entries and specify the gem only once.
       While it's not a problem now, it could cause errors if you change the version of one of them later.
       Fetching gem metadata from https://rubygems.org/.........
       Fetching rake 13.0.6
       Installing rake 13.0.6
       Fetching concurrent-ruby 1.1.9
       Fetching minitest 5.15.0
       Fetching builder 3.2.4
       Fetching zeitwerk 2.5.4
       Installing zeitwerk 2.5.4
       Installing concurrent-ruby 1.1.9
       Installing minitest 5.15.0
       Installing builder 3.2.4
       Fetching erubi 1.10.0
       Fetching mini_portile2 2.7.1
       Installing erubi 1.10.0
       Fetching racc 1.6.0
       Installing mini_portile2 2.7.1
       Fetching crass 1.0.6
       Installing racc 1.6.0 with native extensions
       Installing crass 1.0.6
       Fetching rack 2.2.3
       Fetching nio4r 2.5.8
       Installing nio4r 2.5.8 with native extensions
       Installing rack 2.2.3
       Fetching marcel 1.0.2
       Fetching websocket-extensions 0.1.5
       Installing websocket-extensions 0.1.5
       Installing marcel 1.0.2
       Fetching mini_mime 1.1.2
       Fetching msgpack 1.4.4
       Installing mini_mime 1.1.2
       Installing msgpack 1.4.4 with native extensions
       Using bundler 2.3.10
       Fetching ffi 1.15.5
       Installing ffi 1.15.5 with native extensions
       Fetching method_source 1.0.0
       Installing method_source 1.0.0
       Fetching pg 1.3.1
       Installing pg 1.3.1 with native extensions
       Fetching thor 1.2.1
       Installing thor 1.2.1
       Fetching tilt 2.0.10
       Installing tilt 2.0.10
       Fetching semantic_range 3.0.0
       Installing semantic_range 3.0.0
       Fetching turbolinks-source 5.2.0
       Installing turbolinks-source 5.2.0
       Fetching i18n 1.9.1
       Installing i18n 1.9.1
       Fetching tzinfo 2.0.4
       Installing tzinfo 2.0.4
       Fetching rack-test 1.1.0
       Installing rack-test 1.1.0
       Fetching rack-proxy 0.7.2
       Installing rack-proxy 0.7.2
       Fetching sprockets 4.0.2
       Installing sprockets 4.0.2
       Fetching websocket-driver 0.7.5
       Installing websocket-driver 0.7.5 with native extensions
       Fetching mail 2.7.1
       Installing mail 2.7.1
       Fetching nokogiri 1.13.1 (x86_64-linux)
       Installing nokogiri 1.13.1 (x86_64-linux)
       Fetching puma 5.6.1
       Installing puma 5.6.1 with native extensions
       Fetching turbolinks 5.2.1
       Installing turbolinks 5.2.1
       Fetching activesupport 6.1.4.4
       Installing activesupport 6.1.4.4
       Fetching bootsnap 1.10.3
       Installing bootsnap 1.10.3 with native extensions
       Fetching loofah 2.13.0
       Installing loofah 2.13.0
       Fetching sassc 2.4.0
       Installing sassc 2.4.0 with native extensions
       Fetching rails-dom-testing 2.0.3
       Installing rails-dom-testing 2.0.3
       Fetching globalid 1.0.0
       Installing globalid 1.0.0
       Fetching activemodel 6.1.4.4
       Installing activemodel 6.1.4.4
       Fetching rails-html-sanitizer 1.4.2
       Installing rails-html-sanitizer 1.4.2
       Fetching activejob 6.1.4.4
       Installing activejob 6.1.4.4
       Fetching activerecord 6.1.4.4
       Installing activerecord 6.1.4.4
       Fetching actionview 6.1.4.4
       Installing actionview 6.1.4.4
       Fetching actionpack 6.1.4.4
       Installing actionpack 6.1.4.4
       Fetching jbuilder 2.11.5
       Installing jbuilder 2.11.5
       Fetching actioncable 6.1.4.4
       Installing actioncable 6.1.4.4
       Fetching activestorage 6.1.4.4
       Installing activestorage 6.1.4.4
       Fetching actionmailer 6.1.4.4
       Installing actionmailer 6.1.4.4
       Fetching railties 6.1.4.4
       Installing railties 6.1.4.4
       Fetching sprockets-rails 3.4.2
       Installing sprockets-rails 3.4.2
       Fetching actionmailbox 6.1.4.4
       Installing actionmailbox 6.1.4.4
       Fetching actiontext 6.1.4.4
       Installing actiontext 6.1.4.4
       Fetching webpacker 5.4.3
       Installing webpacker 5.4.3
       Fetching rails 6.1.4.4
       Installing rails 6.1.4.4
       Fetching sassc-rails 2.1.2
       Installing sassc-rails 2.1.2
       Fetching sass-rails 6.0.0
       Installing sass-rails 6.0.0
       Bundle complete! 28 Gemfile dependencies, 57 gems now installed.
       Gems in the groups 'development' and 'test' were not installed.
       Bundled gems are installed into `./vendor/bundle`
       Bundle completed (182.45s)
       Cleaning up the bundler cache.
-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       rake aborted!
       NameError: uninitialized constant Rack::Cors
       /tmp/build_6c572622/config/initializers/cors.rb:1:in `<main>'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.10.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:48:in `load'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.10.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:48:in `load'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/engine.rb:681:in `block in load_config_initializer'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.4/lib/active_support/notifications.rb:205:in `instrument'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/engine.rb:680:in `load_config_initializer'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/engine.rb:634:in `block (2 levels) in <class:Engine>'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/engine.rb:633:in `each'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/engine.rb:633:in `block in <class:Engine>'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/initializable.rb:32:in `instance_exec'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/initializable.rb:32:in `run'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/initializable.rb:61:in `block in run_initializers'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/initializable.rb:50:in `each'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/initializable.rb:50:in `tsort_each_child'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/initializable.rb:60:in `run_initializers'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/application.rb:391:in `initialize!'
       /tmp/build_6c572622/config/environment.rb:5:in `<main>'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.10.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.10.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:35:in `require'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/application.rb:367:in `require_environment!'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.4/lib/rails/application.rb:533:in `block in run_tasks_blocks'
       /tmp/build_6c572622/vendor/bundle/ruby/2.7.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/task.rb:61:in `block (2 levels) in define'
       Tasks: TOP => environment
       (See full trace by running task with --trace)
 !
 !     Precompiling assets failed.
 !
 !     Push rejected, failed to compile Ruby app.
 !     Push failed

任何人都可以幫忙嗎? 提前致謝

好的,我解決了問題,伙計們,在構建日志中您可以看到以下內容: Gems in the groups 'development' and 'test' were not installed. 所以我創建了一個生產寶石組

group :production do
  # Add the gems you need on production here
end

當我重新部署時,它工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM