W ten sposób otrzymujesz dwa różne katalogi w sieci WWW, które odzwierciedlają katalogi lokalne, a nie jedną ścieżkę URL, która przełącza się awaryjnie między dwoma lokalnymi katalogami.
Innymi słowy, wzorzec adresu URL:
http://your.server.com/public/*
Obsługuje pliki z katalogu lokalnego, publicpodczas gdy:
http://your.server.com/public2/*
Obsługuje pliki z katalogu lokalnego public2.
BTW jest to również przydatne, jeśli nie chcesz, aby statyczne pliki były obsługiwane z katalogu głównego twojego serwera, ale raczej z bardziej kwalifikowanej ścieżki.
Idealny @facetcounter! Właśnie wskazałem skrypt do mojego katalogu! script (src = "/ public2 / alertTest.js")
Cody
Jeśli używasz Reacta i próbujesz obsługiwać dwie oddzielne aplikacje, musisz dodać "homepage": "/public"i "homepage": "/public2"do pliku package.json odpowiedniej aplikacji. Aby uzyskać więcej informacji na temat korzystania z dwóch aplikacji React, zobacz moją odpowiedź tutaj stackoverflow.com/a/48569896/4746648
Danny Harding
jest to bardzo przydatne, szczególnie gdy chcesz mieć sharedfolder, aby móc używać "./"i "./shared"bum, możesz łatwo udostępniać pliki js: 3 Dziękuję
Jaacko Torus
55
Możesz także „scalić” katalogi w jeden widoczny katalog
Jeśli dobrze rozumiem, konflikty nazw plików nie występują, ponieważ węzeł używa pierwszej wersji znalezionego pliku. Jeśli widzi main.jsw static/nim nie będzie nadal szukać w alternate_static/.
RobW
2
To wciąż kłopot, jeśli spodziewasz się, że plik alternate_staticzostanie kiedykolwiek doręczony.
Randolpho
41
Nie jest to możliwe przez jedno wstrzyknięcie oprogramowania pośredniego, ale można wstrzyknąć staticoprogramowanie pośrednie wiele razy:
Odpowiedzi:
Możesz również ustawić ścieżkę, z której pliki statyczne będą dostarczane do sieci, określając dodatkowy (pierwszy) parametr, aby
use()
:W ten sposób otrzymujesz dwa różne katalogi w sieci WWW, które odzwierciedlają katalogi lokalne, a nie jedną ścieżkę URL, która przełącza się awaryjnie między dwoma lokalnymi katalogami.
Innymi słowy, wzorzec adresu URL:
Obsługuje pliki z katalogu lokalnego,
public
podczas gdy:Obsługuje pliki z katalogu lokalnego
public2
.BTW jest to również przydatne, jeśli nie chcesz, aby statyczne pliki były obsługiwane z katalogu głównego twojego serwera, ale raczej z bardziej kwalifikowanej ścieżki.
HTH
źródło
"homepage": "/public"
i"homepage": "/public2"
do pliku package.json odpowiedniej aplikacji. Aby uzyskać więcej informacji na temat korzystania z dwóch aplikacji React, zobacz moją odpowiedź tutaj stackoverflow.com/a/48569896/4746648shared
folder, aby móc używać"./"
i"./shared"
bum, możesz łatwo udostępniać pliki js: 3 DziękujęMożesz także „scalić” katalogi w jeden widoczny katalog
Struktura katalogów
/static
/alternate_static
Kod
Zarówno static, jak i alternate_static będą obsługiwane tak, jakby znajdowały się w tym samym katalogu. Uważaj jednak na łamacze nazw plików.
źródło
main.js
wstatic/
nim nie będzie nadal szukać walternate_static/
.alternate_static
zostanie kiedykolwiek doręczony.Nie jest to możliwe przez jedno wstrzyknięcie oprogramowania pośredniego, ale można wstrzyknąć
static
oprogramowanie pośrednie wiele razy:Wyjaśnienie
Spójrz na connect / lib / middleware / static.js # 143 :
Istnieje
options.root
statyczny root, który definiujeszexpress.static
lubconnect.static
wywołujesz, ipath
jest to ścieżka żądania.Więcej informacji na temat connect / lib / middleware / static.js 154 :
Ścieżka sprawdzana tylko raz, a jeśli nie znaleziono pliku, żądanie jest przekazywane do następnego oprogramowania pośredniego.
Aktualizacja dla Connect 2.x
Linki do kodu są nieaktualne dla Connect 2.x, ale użycie wielu statycznych programów pośrednich jest nadal możliwe, jak poprzednio.
źródło
});
źródło