working proyecto not node crear static node.js express duostack

static - proyecto - import css node js



Configuración de dos directorios estáticos diferentes en node.js Express framework (3)

No es posible con una inyección de middleware, pero puede inyectar middleware static varias veces:

app.configure(''development'', function(){ app.use(express.static(__dirname + ''/public1'')); app.use(express.static(__dirname + ''/public2'')); });

Explicación

Mira connect/lib/middleware/static.js#143 :

path = normalize(join(root, path));

There options.root es una raíz estática, que usted define en express.static o connect.static call, y path es request path.

Mire más en connect/lib/middleware/static.js#154 :

fs.stat(path, function(err, stat){ // ignore ENOENT if (err) { if (fn) return fn(err); return (''ENOENT'' == err.code || ''ENAMETOOLONG'' == err.code) ? next() : next(err);

Ruta comprobada solo una vez, y si la solicitud de archivo no encontrado pasa al siguiente middleware.

Actualización para Connect 2.x

Los enlaces al código son inactuales para Connect 2.x, pero el uso de middleware estático múltiple todavía es posible como antes.

¿Es posible? Me gustaría configurar dos directorios diferentes para servir archivos estáticos. Digamos / public y / mnt


También puede "fusionar" directorios en un solo directorio visible

Estructura de directorios

  • /static
  • /alternate_static

Código

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

Tanto static como alternate_static se mostrarán como si estuvieran en el mismo directorio. Sin embargo, ten cuidado con el nombre de archivo de clobbers.


También puede establecer la ruta desde la que se servirán los archivos estáticos a la web especificando un (primer) parámetro adicional para use() manera:

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

De esta forma, obtendrá dos directorios diferentes en la web que reflejan sus directorios locales, no una ruta de acceso de URL que falla entre dos directorios locales.

En otras palabras, el patrón de URL:

http://your.server.com/public/*

Sirve archivos del directorio local public mientras:

http://your.server.com/public2/*

Sirve archivos del directorio local public2 .

Por cierto, esto también es útil si no desea que los datos estáticos sirvan a los archivos desde la raíz de su servidor, sino desde una ruta más calificada.

HTH