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