Correct façon de Charger JS Fichiers Avec des fichiers HTML par le biais de NodeJS
Je ne peux pas obtenir le contenu inclus dans le chef du servi defualt.htm la page de "travail". Le code html des charges dans les dom, juste le CSS et le JS fichiers échoue. Est-il une meilleure alternative? Id tiens à conserver la solution dans NodeJS, mais il est aussi ouvert à douille.io et d'exprimer ainsi.
Merci, ci-dessous est ce que la messagerie instantanée à l'aide.
NodeJS Servant de la Page
var http = require('http'),
fs = require('fs');
fs.readFile(__dirname+'/default.htm', 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(port.number);
});
Default.html Page
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="objects/css/site.css" type="text/css" />
<script src="objects/js/jquery.min.js" type="text/javascript"></script>
<script src="objects/js/site.min.js" type="text/javascript"></script>
</head>
<body></body>
</html>
Si vous voulez écrire vous-même, découvrez github.com/felixge/node-paperboy ou github.com/visionmedia/send module nodejs. Ils peuvent vous aider à la livraison des fichiers statiques comme css/js et les images.
Ma question est, pourquoi êtes-vous servir les fichiers statiques avec node.js? utiliser nginx ou similaire. Tous les pas de l'utilisateur face à des tâches ne devrait pas être fait dans la même boucle d'événement que vous utilisez pour fournir du contenu dynamique.
Ma question est, pourquoi êtes-vous servir les fichiers statiques avec node.js? utiliser nginx ou similaire. Tous les pas de l'utilisateur face à des tâches ne devrait pas être fait dans la même boucle d'événement que vous utilisez pour fournir du contenu dynamique.
OriginalL'auteur sia | 2012-11-12
Vous devez vous connecter pour publier un commentaire.
Je vais jeter mon grain de sel ici.
La façon dont j'ai résolu le même problème de servir les fichiers statiques, c'est que j'ai commencé à utiliser le Paperboy module, qui est dépréciée en faveur de l'Envoyer module d'aujourd'hui.
Anyhoo, la façon dont j'ai résolu à "détourner" la demande avant il est allé dans ma méthode GET et vérifiez le chemin d'accès.
La façon dont je "détourner" est comme suit
et
Si le chemin d'accès contenait le STATICFILES dir, je ferais un autre service de fichiers sinon je serais aller avec le "html"-chemin. Ci-dessous est la
//DO STUFF
de lapreProcess()
fonctionIl pourrait y avoir une meilleure façon de faire cela, mais cela fonctionne comme un charme pour les choses que j'ai besoin de faire.
À l'aide de la Paperboy module j'ai ensuite, à l'aide de la
resolver.resolveResourceOr404();
fonctionenvoyer le fichier comme
OriginalL'auteur Henrik Andersson
Votre Javascript et les styles sont défaillants parce qu'ils n'existent pas. Votre serveur web est uniquement l'envoi d'une seule voie, la racine de la route. Au lieu de cela, vous aurez besoin afin de permettre l'utilisation de plusieurs routes. ExpressJS fait cela pour vous dans une manière simple, mais il est encore très possible sans elle.
Cela pourrait vous aider à démarrer, mais vous aurez à mettre en œuvre certaines des choses comme
next()
vous-même. Une jolie solution simple, mais un travail.Une autre solution pour répondre aux fichiers statiques serait de créer un catcher dans le
http.createServer
de rappel. Dans leget
méthode, si l'uri ne correspond pas, alors vous devez regarder à l'intérieur d'unpublic
dossier correspondant à l'uri complète de la structure du système de fichiers.OriginalL'auteur Daniel
Bien, vous êtes au service de votre
default.htm
fichier sur toutes les demandes. Ainsi, lorsque le navigateur demandeobjects/js/jquery.min.js
, votre serveur retourne le contenu dedefault.htm
.Vous devriez vraiment envisager d'utiliser express ou un autre cadre.
OriginalL'auteur surjikal
Vous êtes mieux avec l'aide de l'Express pour ce genre de trucs.
Quelque chose comme ce sera de faire le travail.
App.js
Indice est un modèle jade de la page.Ce qui rend en html statique et de la marche plutôt bien avec express.
Pour le mondial-tête statique à l'ensemble de vos pages, vous pouvez faire un modèle comme celui-ci et de l'inclure dans un.
static_header.jade
Et enfin votre index.jade qui est à l'aide de la static_header et dynamique propre en-tête de avec ses propres scripts.
Mettre les deux fichiers dans votre dossier de vues et prêt à rouler.
OriginalL'auteur Serdar Dogruyol
ce que d'essayer cela:
OriginalL'auteur Hasan A Yousef