Nach der Bereitstellung meiner Schienen 3 App in der Produktion habe ich festgestellt, dass Pfade nicht immer im Browserfenster angezeigt werden. Zum Beispiel gehen Sie zur Anmeldung oder My_profile Links würde immer noch nur http://my_app.com statt der erwarteten http://my_app.com/login oder http://my_app.com/my_profile zeigen. Die Aussicht änderte sich und funktionierte. Ich konnte auch sehen, dass die Datenbank getroffen wurde und die Aufrufe aus den Logs gerendert wurden (was mich zu der Annahme verleitete, dass es sich nicht um ein einfaches Browser-Cache-Problem handelte). Wenn ich direkt zu http://my_app.com/login gehe, funktionierte die Verwendung der Links in der App jedoch zum erwarteten Ort, während die Login-URL angezeigt wurde. Ich habe es in mehreren Browsern (Firefox, Opera und Chrome) ausprobiert und habe das gleiche Verhalten. Die App wurde unter nginx + passagier und später nginx + thin cluster eingesetzt. Meine Frage ist, was ist los? Könnte es sich um Nginx-Einstellungen oder meine Produktionsumgebung handeln? Ich bin mir nicht sicher, wo ich anfangen soll.rails route Pfad nicht im Browser angezeigt (manchmal)
Laufende Curl-v my_app.mit Shows
* About to connect() to my_app.com port 80 (#0)
* Trying xx.xx.xx.xx... connected
* Connected to my_app.com (xx.xx.xx.xx) port 80 (#0)
> GET/HTTP/1.1
> User-Agent: curl/7.21.1 (x86_64-apple-darwin10.4.0) libcurl/7.21.1 OpenSSL/1.0.0a
zlib/1.2.5 libidn/1.19
> Host: my_app.com
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Set-Cookie: ARPT=PKKIKIS10.0.81.64CKILJ; path=/
< Content-Type: text/html; charset=utf-8
< Status: 200
< X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 2.2.5
< ETag: "fce6dec3543058bec16175466020a906"
< X-Runtime: 7
< Content-Length: 787
< Cache-Control: private, max-age=0, must-revalidate
< Server: nginx/0.7.62 + Phusion Passenger 2.2.4 (mod_rails/mod_rack)
< P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
< Via: 1.0 server.com:8080
< Connection: close
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>http://my_app.com/</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta name="generator" content="Hover Redirect Service">
</head>
<frame name="DDIRECTXYZZY2" scrolling="auto" src="http://xxx.xx.xxx.xxx" noresize>
<frame name="DDIRECTXYZZY" scrolling="no" noresize>
<noframes>
<h1><a href="http://xxx.xx.xxx.xxx">http://my_app.com/</a></h1>
<p>Please <a href="http://xxx.xx.xxx.xxx">click here</a> to view the non-framed versi on.</p>
</noframes>
</frameset>
</html>
So klar ist das ein Problem. Die ganze Sache wird von der DNS-Umleitung gerahmt? Das Setup ist nicht Phusion Passenger + nginx. Es war ursprünglich, aber jetzt ist es dünn + nginx. Auch, wenn Sie direkt zur IP-Adresse der App gehen, sind die Dinge in Ordnung. Wenn ich zum Domain-Namen gehe, bekomme ich die gerahmte Version. curl -v
Antwort von nur die IP-Adresse auch Standard-Aussehen (wie sein Laden der gesamten Seite).
(nicht) -Formatierung der Frage zu schmerzhaft auf die Augen. – Zabba
Was gibt 'curl -v http: // my_app.com' zurück? – DanSingerman