Cette page semble dire que c'est possible mais n'entre pas dans beaucoup plus de détails que cela.
poireau
Réponses:
152
Vous pouvez également définir le chemin d'accès à partir duquel les fichiers statiques seront servis sur le Web en spécifiant un (premier) paramètre supplémentaire use()comme suit:
De cette façon, vous obtenez deux répertoires différents sur le Web qui reflètent vos répertoires locaux, et non un chemin d'URL qui bascule entre deux répertoires locaux.
En d'autres termes, le modèle d'URL:
http://your.server.com/public/*
Sert les fichiers du répertoire local publicpendant que:
http://your.server.com/public2/*
Sert les fichiers du répertoire local public2.
BTW, cela est également utile si vous ne voulez pas que statique serve les fichiers à partir de la racine de votre serveur mais plutôt à partir d'un chemin plus qualifié.
Parfait @facetcounter! Je viens de pointer un script vers mon répertoire! script (src = "/ public2 / alertTest.js")
Cody
Si vous utilisez React et essayez de servir deux applications distinctes, vous devez ajouter "homepage": "/public"et "homepage": "/public2"au package.json de l'application react respective. Pour plus d'informations sur l'utilisation de deux applications de réaction, voir ma réponse ici stackoverflow.com/a/48569896/4746648
Danny Harding
c'est très utile surtout quand vous voulez un shareddossier pour que vous puissiez utiliser "./"et "./shared"et boum, vous pouvez facilement partager des fichiers js: 3 Merci
Jaacko Torus
55
Vous pouvez également «fusionner» des répertoires dans un seul répertoire visible
Si je comprends bien, les conflits de noms de fichiers ne se produisent pas car le nœud utilise la première version du fichier qu'il trouve. Si elle voit main.jsen static/elle ne continuera pas à regarder dans alternate_static/.
RobW
2
C'est toujours un problème si vous vous attendiez à ce que le fichier alternate_staticsoit un jour servi.
Randolpho
41
Ce n'est pas possible avec une seule injection de middleware, mais vous pouvez injecter staticplusieurs fois un middleware:
Réponses:
Vous pouvez également définir le chemin d'accès à partir duquel les fichiers statiques seront servis sur le Web en spécifiant un (premier) paramètre supplémentaire
use()
comme suit:De cette façon, vous obtenez deux répertoires différents sur le Web qui reflètent vos répertoires locaux, et non un chemin d'URL qui bascule entre deux répertoires locaux.
En d'autres termes, le modèle d'URL:
Sert les fichiers du répertoire local
public
pendant que:Sert les fichiers du répertoire local
public2
.BTW, cela est également utile si vous ne voulez pas que statique serve les fichiers à partir de la racine de votre serveur mais plutôt à partir d'un chemin plus qualifié.
HTH
la source
"homepage": "/public"
et"homepage": "/public2"
au package.json de l'application react respective. Pour plus d'informations sur l'utilisation de deux applications de réaction, voir ma réponse ici stackoverflow.com/a/48569896/4746648shared
dossier pour que vous puissiez utiliser"./"
et"./shared"
et boum, vous pouvez facilement partager des fichiers js: 3 MerciVous pouvez également «fusionner» des répertoires dans un seul répertoire visible
Structure du répertoire
/static
/alternate_static
Code
Static et Alternate_static seront servis comme s'ils étaient dans le même répertoire. Attention aux clobbers de nom de fichier, cependant.
la source
main.js
enstatic/
elle ne continuera pas à regarder dansalternate_static/
.alternate_static
soit un jour servi.Ce n'est pas possible avec une seule injection de middleware, mais vous pouvez injecter
static
plusieurs fois un middleware:Explication
Regardez connect / lib / middleware / static.js # 143 :
Il existe
options.root
une racine statique, que vous définissezexpress.static
ouconnect.static
appelez, et unpath
chemin de requête.Regardez plus à connect / lib / middleware / static.js # 154 :
Chemin vérifié une seule fois, et si le fichier est introuvable, la demande est passée au middleware suivant.
Mise à jour pour Connect 2.x
Les liens vers le code sont inactuels pour Connect 2.x, mais plusieurs utilisations de middleware statiques sont toujours possibles comme auparavant.
la source
});
la source