Après avoir déployé l'application 3 rails en production, j'ai remarqué que les chemins ne sont pas toujours affichés dans la fenêtre du navigateur. Par exemple, aller sur les liens login ou my_profile n'affichera toujours que http://my_app.com au lieu de http://my_app.com/login ou http://my_app.com/my_profile. Les points de vue ont changé et étaient fonctionnels. Je pouvais aussi voir la base de données en train d'être touchée et les vues rendues à partir des logs (ce qui m'a amené à croire que ce n'était pas un simple problème de cache du navigateur). Aller directement à http://my_app.com/login travaillé, cependant, en utilisant les liens dans l'application me conduirait à l'endroit prévu tout en laissant l'adresse de connexion affichée. Je l'ai essayé dans plusieurs navigateurs (firefox, opera et chrome) et j'ai eu le même comportement. L'application a été déployée sous nginx + passenger et plus tard nginx + thin cluster. Ma question est, que se passe-t-il? Pourrait-il s'agir de paramètres nginx ou de mes paramètres d'environnement de production? Je ne sais pas trop où commencer.chemin d'accès des rails non affiché dans le navigateur (parfois)
Exécution curl -v my_app.avec des expositions
* 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"
< X-Cache: MISS from server.com
< 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>
<frameset framespacing="0" rows="100%,*" cols="100%" frameborder="no" border="0">
<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>
Il est donc clair C'est un problème. Le tout est encadré par la redirection DNS? L'installation n'est pas Phusion Passenger + nginx. C'était à l'origine, mais maintenant c'est mince + nginx. Aussi, lorsque vous allez directement à l'adresse IP de l'application, les choses vont bien. Quand je vais au nom de domaine, je reçois la version encadrée. curl -v
réponse de seulement l'adresse IP semble également normal (comme son chargement de la page entière).
(non) -formatation de la question trop douloureuse pour les yeux. – Zabba
Que retourne curl -v http: // my_app.com'? – DanSingerman