Better Errors Gem无法在本地浏览器中工作,没有可见的错误



我将Better Errors gem添加到我的gemfile中,如下面的gemfile所示,运行bundle并看到Using better_errors 1.1.0,并多次重新启动服务器。我看了railscast关于如何安装它的一集。我过去从未遇到过安装任何其他gem的问题(我是编程新手)。我阅读了文件,我已经检查过了:

Note: If you discover that Better Errors isn't working - particularly after upgrading from version 0.5.0 or less - be sure to set config.consider_all_requests_local = true in config/environments/development.rb.

任何关于如何让这颗宝石发挥作用的想法都将不胜感激!这是我的gemfile:

source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.5'
group :development, :test do
  gem 'rspec-rails'
  gem 'capybara'
end

# Use sqlite3 as the database for Active Record
 group :production do
   gem 'pg'
   gem 'rails_12factor'
 end
 group :development do
   gem 'sqlite3'
   gem 'better_errors'
 end
 gem 'bootstrap-sass', '~> 3.1.1'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.2'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'
group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end
# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'

使用Vagrant,将其添加到应用程序的config/environments/development.rbconfigure块内的任何位置):

BetterErrors::Middleware.allow_ip! "0.0.0.0/0"

然后重新启动服务器。

(这只是萨沙解决方案的一个细微变化。)

请勿将其添加到您的生产环境中

Valerie--你在虚拟机上吗?更好的错误有时不能很好地与VM配合使用。

我找到的解决方案是:

首先,在应用程序的config/environments/development.rbconfigure do内的任何位置)中添加:

BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP']

然后您需要定义那个环境变量。通过启动浏览器,点击旧的错误页面(只需在控制器或其他地方抛出raise),并在错误页面的"显示环境转储"部分找到"remote_ADDR",即可找到远程IP。然后复制该IP并将其设置为ENV变量(在.envapplication.yml文件中,或保存这些文件的任何位置)。

注意——不要将其添加到生产中。这充其量是不必要的(Better Errors应该只在开发中运行/包含——正如您在上面所确保的那样)。

然后重新启动服务器。有机会修复它吗?

为了更好,您还需要将其添加到config/environments/development.rb:中

BetterErrors::Middleware.allow_ip! "TRUSTED_IP"其中"trusted_ip"是默认错误页面中的"REMOTE_ADDR"对我来说,它是10.0.2.2

在文件app/config/environments/development.rb中,代码中有这一行吗?

# Show full error reports and disable caching.
config.consider_all_requests_local = true

我正在运行流浪者、rails 5和ruby 2.3,并将以下内容添加到我的config/environments/development.rb中,使其正常工作。

  # Allow usage of better_errors on Vagrant
  BetterErrors::Middleware.allow_ip! "10.0.2.2"
  # Show full error reports and disable caching.
  config.consider_all_requests_local = true

与上面的答案相同,但只是想为任何运行rails 5测试版的人确认一下。

老问题,但如果这能帮助任何人。我刚刚在本地主机上运行时遇到了同样的问题:安装和配置了更好的错误,但我没有收到任何有用的错误。

通过运行bundle update,问题很容易得到解决。

这更新了Using better_errors 2.9.1 (was 2.4.0),现在我得到了更好的错误。

相关内容

  • 没有找到相关文章

最新更新