2012-07-07 24 views
6

He escrito un sitio web en node.js y express. Ahora he configurado lighttpd para utilizar el servidor Node.js con un subdirectorio:¿Cómo manejar rutas relativas en node.js/express?

$HTTP["url"] =~ "^/app/" { 
    proxy.server = ("" => ((
           "host" => "127.0.0.1", 
           "port" => 3000 
          )) 
       ) 
} 

Al abrir http://localhost/app/ me sale error 404 porque escribí algo como esto:

app.get('/', function (req, res){ 
    res.render('index'); 
}); 

¿Hay una mejor manera como modificando estas líneas como:

var relPath = '/app'; 

app.get(relPath + '/', function (req, res){ 
    res.render('index'); 
}); 

?

+5

'app.use ('/ app', app.router);' puede hacer el truco. –

+0

De hecho, hace el truco, aunque no estoy corriendo detrás de un proxy. – ebohlman

+0

El proxy no debería importar siempre que no afecte la ruta. –

Respuesta

4

Como Ryan comentó la solución es:

app.use('/app', app.router); 

Si se utiliza, por ejemplo, express.static o express.favicon usted tiene que decirle app.use el camino también:

app.use('/app', express.favicon(__dirname + '/public/images/favicon.ico')); 
app.use('/app', express.static(__dirname + '/public')); 

Recuerde escribir '/ app' antes de cada enlace interno que estableció en su html.

+0

esto ya no funciona en express 4.x – javiertoledos

Cuestiones relacionadas