À l'aide de node.js pour servir de base page web avec les CSS et JS comprend

Je viens d'une (traditionnel) des scripts côté serveur (PHP) à fond et suis en train d'expérimenter avec le Noeud de voir ce que le bruit est tout au sujet.

Objectif: servir un simple document web avec quelques feuilles de style et scripts.

Mon node.js script:

var http = require('http');
var fs = require('fs');

fs.readFile('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(1337, '127.0.0.1');
});

index.html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset='utf-8'> 
        <title>Node.js test</title>
        <link rel="stylesheet" media="screen" type="text/css" href="css/plugin.css" />
        <link rel="stylesheet" media="screen" type="text/css" href="css/xGrid.css" />
        <link rel="stylesheet" media="screen" type="text/css" href="css/jquery-ui/jquery-ui-1.10.1.custom.min.css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
        <script src="js/slate.js"></script>
        <script src="js/slate.portlet.js"></script>
        <script src="js/slate.message.js"></script>
        <script src="js/plugin.js"></script>
    </head>
    <body>
        <h1 class="styled-h1">Test</h1>
    </body>
</html>

Le problème, je suis confronté:

Les deux script comprend en provenance de Google CDN sont chargés sur le document d'amende. Cependant, chaque autre feuille de style ou un script appelé à partir de mon système de fichier local interprété comme text/html et donc ne pas avoir l'effet escompté. Voici une capture d'écran de Google Chrome console:

À l'aide de node.js pour servir de base page web avec les CSS et JS comprend

Je veux comprendre pourquoi ce qui se passe.

PS: je sais que je peux utiliser un framework comme Exprès pour rendre les choses plus faciles, mais je veux obtenir une prise de les bases en premier.

J'ai écrit un module appelé Cachemere qui vous permet de le faire. Il a également place automatiquement l'ensemble de vos ressources. Lien: github.com/topcloud/cachemere

OriginalL'auteur karancan | 2013-07-04