Cómo deshabilitar "No se puede renderizar la consola desde Rails" en Rails
Estoy usando Ubuntu/vagrant como mi entorno de desarrollo. Estoy recibiendo estos mensajes en la consola de rails:
Started GET "/assets/home-fcec5b5a277ac7c20cc9f45a209a3bcd.js?body=1" for 10.0.2.2 at 2015-04-02 15:48:31 +0000
Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
¿Es posible deshabilitar aquellos "no se puede renderizar..."mensajes o permitirlos de alguna manera?
7 answers
Debe incluir en la lista blanca el espacio de red 10.0.2.2 en la configuración de Web Console.
Así que querrás algo como esto:
class Application < Rails::Application
config.web_console.whitelisted_ips = '10.0.2.2'
end
Lea aquí para más información.
Como señaló por pguardiario, esto quiere ir a config/environments/development.rb
en lugar de config/application.rb
por lo que solo se aplica en su entorno de desarrollo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:54:58
Puede incluir una sola IP o redes enteras en la lista blanca.
Digamos que quieres compartir tu consola con 192.168.0.100
. Puedes hacer esto:
class Application < Rails::Application
config.web_console.whitelisted_ips = '192.168.0.100'
end
Si desea incluir toda la red privada en la lista blanca, puede hacer lo siguiente:
class Application < Rails::Application
config.web_console.whitelisted_ips = '192.168.0.0/16'
end
Si ya no quieres ver este mensaje, establece esta opción en false:
class Application < Rails::Application
config.web_console.whiny_requests = false
end
Ten cuidado con lo que deseas, porque es posible que lo consigas todo
Esto es probablemente solo para fines de desarrollo, por lo que podría preferir colocarlo bajo config/environments/development.rb
en lugar de config/application.rb
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-07 16:09:08
Codificar una IP en un archivo de configuración no es bueno. ¿Qué hay de otros desarrolladores? ¿Qué pasa si la ip cambia?
La configuración relacionada con Docker no debe filtrarse en la aplicación rails siempre que sea posible. Es por eso que debe usar env vars en el archivo config/environments/development.rb
:
class Application < Rails::Application
# Check if we use Docker to allow docker ip through web-console
if ENV['DOCKERIZED'] == 'true'
config.web_console.whitelisted_ips = ENV['DOCKER_HOST_IP']
end
end
Debe establecer vars env correctos en un archivo .env
, no rastreado en el control de versiones.
En docker-compose.yml
puede inyectar env vars desde este archivo con env_file
:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
links:
- db
environment:
- DOCKERIZED=true
env_file:
- ".env"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-28 14:22:35
Descubrimiento automático dentro de su config/development.rb
config.web_console.whitelisted_ips = Socket.ip_address_list.reduce([]) do |res, addrinfo|
addrinfo.ipv4? ? res << IPAddr.new(addrinfo.ip_address).mask(24) : res
end
Por supuesto, podría necesitar agregar
require 'socket'
require 'ipaddr'
Dentro de su archivo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-28 14:25:40
Cualquier persona en cualquiera de mis redes privadas es bienvenida.
Corro en un contenedor docker y no me importa qué red quiere usar esta semana.
Config/environments/development.rb añadir línea
config.web_console.whitelisted_ips = ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-07 21:22:42
Para el entorno de desarrollo: Detecte si es docker, luego determine la dirección IP y la incluya en la lista blanca
# config/environments/development.rb
require 'socket'
require 'ipaddr'
Rails.application.configure do
...
# When inside a docker container
if File.file?('/.dockerenv')
# Whitelist docker ip for web console
# Cannot render console from 172.27.0.1! Allowed networks: 127.0.0.1
Socket.ip_address_list.each do |addrinfo|
next unless addrinfo.ipv4?
next if addrinfo.ip_address == "127.0.0.1" # Already whitelisted
ip = IPAddr.new(addrinfo.ip_address).mask(24)
Logger.new(STDOUT).info "Adding #{ip.inspect} to config.web_console.whitelisted_ips"
config.web_console.whitelisted_ips << ip
end
end
end
Para mí esto imprime lo siguiente y la advertencia desaparece
Adding 172.27.0.0 to config.web_console.whitelisted_ips
Adding 172.18.0.0 to config.web_console.whitelisted_ips
Mi solución fue combinar
- la respuesta de user2481743 ️ https://stackoverflow.com/a/42142563/2037928
- el comentario de jottr ️ Cómo deshabilitar "No se puede renderizar la consola desde..."sobre rieles
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-20 14:42:16
Si desea dejar de ver este mensaje de error, puede agregar esta línea en desarrollo.rb
config.web_console.whiny_requests = false
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-19 12:56:05