2012-05-16 18 views
8

Quiero usar la configuración del servidor estática expreso para la implementación de un servidor estático:¿Cómo puedo implementar directorios virtuales con node.js y express?

app.configure(function() { 
    app.use(express.static(__dirname + '/public')); 
}); 

Pero quiero para mapear la URL http://myhost/url1 al directorio C:\dirA\dirB y http://myhost/url2 al directorio C:\dirC

¿Cómo puede ser implementado utilizando express.static?

Respuesta

5

Según la cantidad de directorios que planee asignar de esta manera, puede simplemente crear enlaces simbólicos para esos directorios en su carpeta public.

En Windows:

mklink /D c:\dirA\dirB public\url1 

En Linux o OSX:

ln -s /dirA/dirB public/url1 

A continuación, el servidor de activos estáticos debe servir a los directorios de forma transparente (nunca he probado en Windows pero no lo hago ver por qué no funcionaría).

Alternativamente, si desea incluir algún tipo de enrutamiento dinámico, puede escribir su propio middleware para reemplazar express.static que en realidad es connect.static debajo del capó. Eche un vistazo a static.js en el connect source y vea cómo se implementa, debería ser bastante sencillo escribir su propia variación.

7

Esto debería funcionar para usted:

var serveStatic = require("serve-static"); 
app.use('/url1', serveStatic('c:\\dirA\\dirB')); 
app.use('/url2', serveStatic('C:\\dirC')); 

Tome un vistazo a la documentación de app.use().

+0

Esta es una respuesta mucho más simple y eficiente que la aceptada. – havlock

Cuestiones relacionadas