7 votes

Safari 7.0 ne peut pas charger localhost

Après la mise à niveau vers 10.9 et Safari 7.0, je ne peux plus charger http://localhost:4000 dans Safari. Oui, mon site se charge toujours parfaitement lorsque je le charge dans Chrome et Firefox, il s'agit donc d'une nouveauté dans Safari.

Ce sont les messages d'erreur que je vois dans la fenêtre du développeur. Le message d'erreur est le suivant

Failed to load resource: The network connection was lost.

Developer Window

Il semble même que le serveur fasse son travail correctement. Voici la sortie de la console rake. Tout renvoie 200.

127.0.0.1 - - [24/Oct/2013 06:25:49] "GET / HTTP/1.1" 200 - 0.0039
127.0.0.1 - - [24/Oct/2013 06:25:49] "GET /stylesheets/screen.css HTTP/1.1" 200 - 0.0022
127.0.0.1 - - [24/Oct/2013 06:25:49] "GET /javascripts/modernizr-2.0.js HTTP/1.1" 200 - 0.0014
127.0.0.1 - - [24/Oct/2013 06:25:49] "GET /javascripts/octopress.js HTTP/1.1" 200 - 0.0018
127.0.0.1 - - [24/Oct/2013 06:25:49] "GET /javascripts/ender.js HTTP/1.1" 200 - 0.0048

4voto

Kieran Senior Points 6053

Je pense que c'est un problème avec WEBrick v1.3. WEBrick ne retourne pas la longueur correcte du contenu et en informe les utilisateurs :

WARN Impossible de déterminer la longueur du contenu du corps de la réponse. Définissez la longueur du contenu de la réponse ou définissez Response#chunked = true.

Essayer de wget la même ressource signalera également une erreur dans la connexion réseau comme par : https://github.com/imathis/octopress/issues/1395

Chrome et Firefox affichent seulement quel que soit le contenu reçu & ne vous inquiétez pas du décalage de la longueur du contenu. Safari, à partir de Safari 7.0 sur Mavericks 10.9, est plus strict en ce qui concerne la réponse et traite la non-concordance comme une erreur "Failure to load resource". (Si je devais deviner, je dirais qu'ils essaient probablement d'améliorer la vitesse et qu'ils ne réessayent pas de charger la ressource et n'obtiennent donc pas la réponse "fichier entièrement récupéré"). wget fait).

Si vous remplacez WEBrick par thin, ce problème devrait disparaître. Pour faire cela sur une application basée sur un Rack, essayez :

echo gem \"thin\" >> Gemfile
bundle install
rbenv rehash # if you're using rbenv
bundle exec rackup -s thin

2voto

Robert Watts Points 31

Il se peut que votre serveur de développement local n'envoie pas tous les octets d'un de ces fichiers CSS ou JS à Safari ?

Il semble que Safari ne soit pas très indulgent là où les autres navigateurs le sont. SteveLTN pense que c'est peut-être le cas dans un sondage similaire Numéro d'Octopress sur GitHub :

J'ai trouvé que le fichier octopress.js devrait être de 8482 octets, mais d'une manière ou d'une autre, le serveur a signalé 8502 octets au navigateur ( et wget aussi ), ce qui conduit le navigateur à penser que la connexion réseau est perdue lorsqu'il reçoit 8482 octets. Wget, Chrome et Firefox ont probablement pu automatiquement réessayer, mais Safari ne l'a pas fait. Merci.

2voto

Paul Walk Points 21

J'ai rencontré un problème très similaire en exécutant une application Sinatra sur Mavericks avec Safari. Je peux confirmer que l'installation de " thin " (gem install thin) et son ajout au fichier gem de l'application ont suffi à résoudre le problème.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X