Ich verwende Ubuntu / Vagrant als meine Entwicklungsumgebung. Ich erhalte diese Nachrichten auf der Rails-Konsole:
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
Ist es möglich, diese "Kann nicht rendern ..." - Nachrichten zu deaktivieren oder in irgendeiner Weise zuzulassen?
ruby-on-rails
vagrant
Leandro França
quelle
quelle
config/environments/development.rb
, @ydaetskcoRENV.fetch('SSH_CLIENT', '127.0.0.1').split(' ').first
. Im Allgemeinen wird dies wahrscheinlich 10.0.2.2 sein, aber es sollte widerspiegeln, welche Netzwerkkonfiguration aktiv ist (vagabundierend oder nicht, wirklich - was natürlich sein kann oder nicht, was Sie wollen).config.web_console.whitelisted_ips
. Die zweite sind die Fehlermeldungen, die in Ihren Protokollen angezeigt werden. Dies wird gesteuert durchconfig.web_console.whiny_requests
. Schließlich, und dies war das Problem, mit dem ich konfrontiert war, wurde der IP-Fehler in der Whitelist verursacht, weil Rails versuchte, die Konsole als Standardmechanismus für die Behandlung eines anderen Fehlers zu rendern. Es sollte also auch helfen, den anderen Fehler zu beheben oder die Standardeinstellung zu ändern.Sie können einzelne IPs oder ganze Netzwerke auf die Whitelist setzen.
Angenommen, Sie möchten Ihre Konsole mit teilen
192.168.0.100
. Du kannst das:Wenn Sie das gesamte private Netzwerk auf die Whitelist setzen möchten, haben Sie folgende Möglichkeiten:
Wenn Sie diese Nachricht nicht mehr sehen möchten, setzen Sie diese Option auf false:
Sei vorsichtig, was du dir wünschst, denn du bekommst vielleicht alles
Dies ist wahrscheinlich nur für Entwicklungszwecke gedacht, daher möchten Sie es vielleicht lieber unter
config/environments/development.rb
als platzierenconfig/application.rb
.quelle
Das Hardcodieren einer IP in eine Konfigurationsdatei ist nicht gut. Was ist mit anderen Entwicklern? Was ist, wenn sich die IP ändert?
Die Docker-bezogene Konfiguration sollte nach Möglichkeit nicht in die Rails-App gelangen. Aus diesem Grund sollten Sie env vars in der
config/environments/development.rb
Datei verwenden:Sie sollten die richtigen Umgebungsvariablen in einer
.env
Datei festlegen , die nicht in der Versionskontrolle erfasst wird.In können
docker-compose.yml
Sie env vars aus dieser Datei einfügen mitenv_file
:Basierend auf dem in Kommentaren erhaltenen Feebdack können wir auch eine Lösung ohne Umgebungsvariablen erstellen:
Ich werde die Lösungen zu Lernzwecken bei env var belassen.
quelle
.env
nicht in die Versionskontrolle eingecheckt werden, kann jeder es in seiner eigenen Umgebung überschreiben. Die Docker-Informationen lecken trotzdem in die App, wir minimieren hier nur den Schaden :)env_file
undenvironment
Optionen erfahrendocker-compose.yml
. 👍DOCKERIZED
-env Variable. Docker erstellt eine/.dockerenv
-Datei, nach der Sie suchen können:File.file?('/.dockerenv') => true
und Sie befinden sich in einem Container.Automatische Erkennung in Ihrem
config/development.rb
Natürlich muss möglicherweise hinzugefügt werden
In Ihrer Datei.
quelle
config.web_console.whitelisted_ips = Socket.ip_address_list.select(&:ipv4?).map{ |addrinfo| IPAddr.new(addrinfo.ip_address).mask(24) }
config.web_console.whitelisted_ips = ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']
aus @ kwerles Antwort ?Jeder in einem meiner privaten Netzwerke ist willkommen.
Ich laufe in einem Docker-Container und es ist mir egal, welches Netzwerk diese Woche verwendet werden soll.
config / environment / development.rb Zeile hinzufügen
quelle
Für die Entwicklungsumgebung: Ermitteln Sie, ob es sich um ein Docker handelt, ermitteln Sie die IP-Adresse und führen Sie eine Whitelist durch
Für mich gibt dies Folgendes aus und die Warnung verschwindet 🎉
Meine Lösung war zu kombinieren
quelle
undefined method <<' for nil:NilClass (NoMethodError)
. Also habe ich eine Variable namens erstelltwhitelisted_ips = [ ]
, sie innerhalb der Schleife verwendet, die ips hinzugefügt hat, und nach der Schleife:config.web_console.whitelisted_ips = whitelisted_ips
und dann hat es für mich funktioniert! So danke!Wenn Sie Docker verwenden, möchten Sie höchstwahrscheinlich weder neue ENV-Variablen einführen noch Ihre spezifische IP-Adresse fest codieren.
Stattdessen möchten Sie möglicherweise überprüfen, ob Sie Docker verwenden
/proc/1/cgroup
, und Ihre Host-IP (sowohl fürweb_console
als auchbetter_errors
) zulassen . Fügen Sie Ihrem hinzuconfig/environments/development.rb
quelle
quelle
Für mich
whitelisted_ips
schien es nicht in einem neuen Projekt zu funktionieren. Die Readme-Datei gibt an, dass der entsprechende Konfigurationseintragpermissions
jetzt sein soll:https://github.com/rails/web-console/blob/master/README.markdown
quelle
Wenn Sie Ihre Website lokal ausgeführt (auf dem Host) es funktioniert in der Regel aus, da
127.0.0.1
ist immer erlaubt . Wenn Sie Ihre Site jedoch in einen Container stellen möchten (nicht in Produktion, lokal), möchten Sie dies möglicherweise hinzufügen inconfig/environments/development.rb
:PS Meistens willst du, dass es jammert (willst du nicht
config.web_console.whiny_requests = false
). Weil es bedeuten könnte, dass Sieweb-console
in der Produktion laufen (was Sie nicht tun sollten).quelle
Wenn Sie diese Fehlermeldung nicht mehr sehen möchten, können Sie diese Zeile in development.rb hinzufügen
quelle