Connectez-vous à un serveur Jekyll construit localement à l'aide d'appareils mobiles sur le réseau local


89

Après utilisation jekyll servesur une machine, un serveur WEBrick est mis en place et le site est accessible à partir localhost:4000de ce PC particulier.

Cependant, je me demande comment accéder à ce serveur Web à partir d'autres machines du réseau local, en particulier pour les appareils mobiles? J'essaie de tester le site jekyll sur les appareils mobiles avant de pousser le code sur Github.

Réponses:


188

Essayez jekyll serve --host=0.0.0.0lorsque vous appelez Jekyll sur la ligne de commande.

Cela permettra au serveur HTTP de Jekyll de se lier à toutes les adresses IP disponibles, plutôt que simplement à localhost.

Vous pouvez également l'ajouter à votre _config.ymlavec host: 0.0.0.0. GitHub ignorera simplement cela lorsque vous poussez, il est donc sûr de l'utiliser si cela ne vous dérange pas d'avoir votre travail ouvertement accessible sur votre réseau.


Sans --host=0.0.0.0Jekyll affichera quelque chose comme ceci lorsque vous démarrez:

$ jekyll serve
[...]
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.

Mais avec --host=0.0.0.0(ou host: 0.0.0.0in _config.yml), vous remarquerez qu'il écoute sur toutes les interfaces (représentées par 0.0.0.0) plutôt que de simplement écouter sur l'interface de bouclage (représentée par 127.0.0.1)

$ jekyll serve --host=0.0.0.0
[...]
Server address: http://0.0.0.0:4000/
Server running... press ctrl-c to stop. 

Si vous ne pouvez toujours pas accéder à votre serveur, il se peut qu'un pare-feu l'arrête. Désactivez temporairement votre pare-feu ou ajoutez une règle de transfert de port pour le port 4000.


Une fois que Jekyll écoute correctement sur toutes les interfaces, vous pouvez y accéder depuis votre appareil mobile en utilisant votre adresse IP LAN (récupérée à partir de quelque chose comme ifconfigou en ipconfigfonction de votre système d'exploitation).


3
La première partie a fonctionné comme indiqué (jekyll 2.5.3), n'a pas testé la deuxième partie (à propos de l'entrée dans le fichier de configuration).
— j4v1

7
Pour accéder ensuite à votre site, sur votre autre ordinateur / appareil mobile, saisissez l'adresse IP de l'ordinateur effectuant l'hébergement. (Quelque chose comme probablement 192.168.1.5:4000). Et voici un moyen de trouver votre ip: stackoverflow.com/a/13322549/1400991
— Ross R

Si vous essayez d'exécuter un serveur sur Chromebook sous Crouton, vous devrez également exécuter /sbin/iptables -P INPUT ACCEPTpour ouvrir le pare-feu. Ajoutez éventuellement cette ligne à /etc/rc.localsi vous souhaitez que le pare-feu soit ouvert par défaut lorsque vous entrez chroot. Voir aussi les instructions officielles .
— Alex Yursha

1
mais il plante toutes les images avec {{site.url}} parce qu'elles pointent vers http: 0.0.0.0: 4000 qui ne s'ouvre pas dans la machine principale
— GorvGoyl

1
Cela ne répond pas complètement à la question, quelle est l'adresse à utiliser? localhost: 4000 ou 0.0.0.0:4000 ou autre chose?
— Andy

-8

En supposant que votre appareil mobile est connecté au même LAN que votre machine de développement.

  1. Vérifiez l'adresse IP LAN de votre machine de développement. Généralement quelque chose comme: 192.168.0.XXX. Où .XXX correspond aux 3 derniers chiffres uniques de l'adresse IP LAN de votre machine de développement.

  2. Pointez le navigateur Web de votre appareil mobile vers: http://192.168.0.XXX:4000

C'est comme ça que je le fais sur mon ordinateur portable et mon iPhone pour Jekyll dev.


2
Dois-je spécifier --host=0.0.0.0lors du démarrage du serveur? (Je ne peux pas le tester pour le moment.)
— Yi Zeng

@ user1177636, non, pas nécessaire, juste jekyll serve. Cela lancera le serveur WebBrick qui sera disponible sur n'importe quel périphérique ou machine local. BTW, je suppose que vous exécutez Jekyll> = 1.0.0, les commandes sont différentes pour les anciennes versions. Exécutez jekyll --serversi vous utilisez <= 0.12.1.
— JW

D'une manière ou d'une autre, cela n'a pas fonctionné pour moi sans spécifier --host = 0.0.0.0. Quels ont été les paramètres du pare-feu que vous avez utilisés pour résoudre ce problème?
— skjoshi

2
Pour moi aussi, courir jekyll servene fonctionnait pas. Mon appareil mobile n'a pas pu accéder au serveur sauf si j'ai sonné jekyll serve --host=0.0.0.0. Quelqu'un a une explication à cela?
— fraxture

2
@fraxture jekyll serve par défaut écoute sur localhost (127.0.0.1) il n'est accessible que via l'adaptateur de bouclage sur la machine sur laquelle il s'exécute. en lui disant de se lier à 0.0.0.0, vous lui dites de se lier à toutes les interfaces, et ainsi il se lie à votre interface (ethernet / sans fil / etc.) et est donc également accessible via le côté LAN.
— Doon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.