2013-04-08 3 views
1

Je suis coincé sur un problème frustrant.expressjs Fichiers statiques non servis

Mes fichiers statiques ne sont pas servis par express js, et à la place, mon catch global get get handler est en cours d'utilisation.

Ma structure de répertoire:

node/apps/web/app.js 
-------------/public/ 
--------------------/css/site.css 
--------------------/js/ 
--------------------/img/ 

Ma configuration de développement

app.configure('development',function() { 

console.log(__dirname); 

// for development, serve static files via express 
app.use(express.static(__dirname + '/public')); 

app.use(express.errorHandler({dumpExceptions: true, showStack: true})); 
}); 
//...later 
app.get('*',route.r404); 

La demande:

http://192.168.1.101/css/site.css

ne parvient pas à déclencher le fichier css approprié.

EDIT POUR AJOUTER:

ressemble a quelque chose à voir avec la prise par défaut tout l'itinéraire. Si je le commente, il se résout correctement ...

Répondre

2

Si app.use (app.router) est au dessus de la ligne app.use (express.static (...)) alors les routes l'emporteront sur le statique. Votre ligne app.get ('*', ...) fait partie des itinéraires.

Voir Node.js/Express.js - How does app.router work? pour plus d'informations.

+0

Merci pour le lien. Je vérifierai. – Alan

0
var express = require("D:/node/express/modules/express"); 
var path=require("D:/node/express/modules/path"); 
var app = new express(); 
app.get('/',function(req,res){ 
    res.sendFile(path.join(__dirname,'/index.html')); 
}); 
app.get('/about',function(req,res){ 
    res.sendFile(path.join(__dirname,'/about.html')); 
}); 
app.listen(1000); 

ici var express et var path sont chemin modules ici vous pouvez utiliser ce code simple pour servir des fichiers statiques.

Questions connexes