affichage de la page html avec node.js
C'est ma première fois avec node.js. - Je l'obtenir à l'écran la index.html mais il n'affiche pas les images sur le site ou quoi que ce soit d'autre, il montre SEULEMENT l'html de base des choses. Voici comment je l'ai installé.
Il n'y a pas d'apache, de php ou quoi que ce soit d'autre sur le serveur, ubuntu, proftpd avec et nœud(et le roulage et les autres dépendances). J'ai fait le répertoire principal pour le nœud fichiers /var/nodeFiles et le répertoire pour le html/site fichiers est /var/nodeFiles/www
donc, pour mon nœud de serveur de fichier, je l'ai fait comme ceci:
var http = require('http'),
fs = require('fs');
fs.readFile('/var/nodeFiles/www/index.html', function (err, html) {
if (err) {
throw err;
}
http.createServer(function(request, response) {
response.writeHeader(200, {"Content-Type": "text/html"});
response.write(html);
response.end();
}).listen(80);
});
cela fonctionne, mais il ne montre que la index.html fichier et RIEN de fixé, donc pas d'images, pas d'effets ou quoi que ce soit que le fichier html doit s'afficher. Les fichiers et les répertoires sont tout à fait correct, j'ai vérifié les autorisations de l'dossiers sont corrects. Alors quoi d'autre dois-je faire pour obtenir le nœud pour afficher le reste du site?
J'espère que j'ai expliqué mon auto correctement, on me dit que c'est l'endroit pour poser des questions de développement.
Merci d'avoir pris le temps de lire ce.
Fondamentalement, ce que vous voulez faire est de servir du contenu statique, Il y a beaucoup de questions à ce sujet posté avant.
il est de générer le code html dans le fichier du serveur. J'essayais de prendre un site existant et de l'afficher à l'aide de la fs de la bibliothèque. Si la ré-écriture de cette façon est ce que je dois faire, ainsi soit-il.
L'utilisation de fichier complet/url de l'image au lieu de l'url relative.
OriginalL'auteur user2137087 | 2013-03-05
Vous devez vous connecter pour publier un commentaire.
C'est parce que dans votre programme c'est la seule chose que vous renvoyer au navigateur, indépendamment de ce que la requête ressemble.
Vous pouvez prendre un coup d'oeil à un exemple plus complet qui va renvoyer les fichiers corrects pour la plupart des pages web (HTML, JPG, CSS, JS) ici https://gist.github.com/hectorcorrea/2573391
Aussi, jetez un oeil à ce blog que j'ai écrit sur la façon de commencer avec le noeud. Je pense qu'il pourrait clarifier un peu les choses pour vous: http://hectorcorrea.com/blog/introduction-to-node-js
Je suis heureux que vous ayez aimé.
comment pourrais-je l'utiliser sur AWS si je n'ai pas une ip statique?
var serverUrl = "127.0.0.1";
etvar serverUrl = "http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com/";
ne fonctionne pasfixe en commentant:
}).listen(port/* , serverUrl */);
OriginalL'auteur Hector Correa
Consulter cette base de code de configuration du serveur html. son travail pour moi.
index.html
et pas d'autres fichiers dans ce répertoireDans le cas où si je ne sais pas le chemin, je ne connais que l'url que trop de ce genre "www.example.com/example/example1"
OriginalL'auteur Tsimtsum
Cela a fonctionné pour moi:
OriginalL'auteur Coded Container
Si votre objectif est simplement d'afficher certains fichiers statiques, vous pouvez utiliser la connexion paquet. J'ai eu quelques succès (je suis encore assez nouveau pour NodeJS moi-même), à l'aide et de l'API de twitter bootstrap en combinaison.
à la ligne de commande
Ensuite dans un fichier (j'ai nommé) Server.js
Enfin
Mises en garde:
Si vous ne souhaitez pas afficher le contenu d'un répertoire, d'exclure l' .utilisation(se connecter.annuaire ligne.
J'ai donc créé un dossier appelé "serveur" placé index.html dans le dossier et le démarrage de l'API dans le même dossier. Puis, quand vous accédez à ordinateurs IP:8080 c'est automagiquement va utiliser la index.html fichier.
Si vous souhaitez utiliser le port 80 (il suffit donc d'aller à l'adresse http://, et vous n'avez pas à taper dans :8080 ou de quelque autre port). vous aurez besoin pour commencer nœud avec sudo, je ne suis pas sûr des implications en matière de sécurité, mais si vous êtes juste de l'utiliser pour un réseau interne, je ne pense personnellement que c'est une grosse affaire. L'exposer au monde extérieur est une autre histoire.
Mise à jour 1/28/2014:
Je n'ai pas eu à le faire de la façon suivante sur mes dernières versions de choses, donc, essayez comme ci-dessus, tout d'abord, si cela ne fonctionne pas (et vous lisez les erreurs se plaindre qu'il ne peut pas trouver de nodejs), aller de l'avant et éventuellement essayer de le ci-dessous.
Mise À Jour De Fin
En outre, lors de l'exécution dans ubuntu, j'ai rencontré un problème à l'aide de nodejs que le nom (avec NPM), si vous rencontrez ce problème, je vous recommande d'utiliser un alias ou quelque chose de "renommer" nodejs à nœud.
Commandes que j'ai utilisé (pour le meilleur ou pour le pire):
Créer un nouveau fichier appelé nœud
Qui devrait faire
fonctionnent très bien
Aussi lorsque j'ai mis en statique'../', j'obtiens un message d'erreur disant que l'indéfini n'est pas une fonction.
Je soupçonne que cela est dû à des mises à jour dans les paquets, l'exemple simple arrêté de travailler pour me connecter après les mises à jour.... Je devrais faire quelques recherches pour voir ce que la dernière version utilise (je l'ai trouvé à un moment, mais ne pas voir des exemples sur github pour le moment).*Longue histoire courte, la version des outils utilisez-vous, qui sera le moteur de la réponse.
OriginalL'auteur onaclov2000