NodeJS no servirá archivos estáticos, incluso cuando se utiliza express.static

Tengo algo parecido a lo siguiente:

var request = require('request'), express = require('express'); var app = express.createServer(); var port = process.env.PORT || 8080; app.configure(function(){ app.set("view options", { layout: false, pretty: true }); app.use(express.favicon()); app.use("/public", express.static(__dirname + '/public')); } ); app.listen(port); // Routes app.get('/', function(req, resp){ resp.render('index.jade', {pageTitle: 'Some title'}); }); 

Sin embargo, cuando visito /public/myfile.css por ejemplo, todavía obtengo:

No se puede obtener /public/myfile.css Parece que mis plantillas index.jade tampoco pueden llamar a los archivos

¿Por qué es esto?

No creo que sea compatible con el camino así:

 app.use("/public", express.static(__dirname + '/public')); 

Prueba esto y busca tus archivos públicos en la raíz:

 app.use(express.static(__dirname + '/public')); 

Entonces /public/myfile.css convierte en /myfile.css .

También es importante el lugar donde se encuentra la posición de app.use(express.static(__dirname + '/public'))

Tuve un problema cuando estaba funcionando y cuando accidentalmente lo puse en un archivo ./middle-conf.js que luego se importó como var configure = require('./middle-conf) y luego se pasó la aplicación Express en esta configure(app) .

Por lo tanto, la orden de procesamiento de middleware no funcionaba correctamente.

esto funciona bien …

 app.use("/public", express.static(__dirname + '/public')); 

y en sus páginas html accedan de esta manera ..