Te odpowiedzi muszą być nieaktualne. Działa użycie ścieżek bezwzględnych nginx 1.3.8 z ukośnikami do przodu. Odwrotne ukośniki wydają się działać, ale należy je podwoić. Jeśli nie są, niektóre, takie jak końcowe, \"
są traktowane dosłownie.
location /static/ {
# alias "C:\\foo\\bar\\...\\static\\";
alias "C:/foo/bar/.../static/";
expires 90d;
}
Cytaty mogą nie być wymagane, ale wydają się dobrym pomysłem w przypadku osadzonych przestrzeni.
Inną rzeczą, którą zauważyłem, jest to, że ważne jest, aby dopasować adres URL i ścieżkę aliasu dotyczącą kończenia ukośnikiem końcowym czy nie - niedopasowanie i to nie działa.
Jeśli spróbujesz podać ścieżkę bezwzględną, taką jak ...
... wtedy po zażądaniu pliku z tej lokalizacji prawdopodobnie zobaczysz błędy w C: \ nginx \ logs \ error.log, takie jak:
Konfigurując nginx w systemie Windows, podaj ścieżki w stosunku do katalogu C: \ nginx. To działa:
Osobiście z przyjemnością się tego nauczyłem, ponieważ sprawia, że moje konfiguracje nginx są nieco bardziej przenośne między Windows i Linuxem, niż się spodziewałem. Aby zmienić plik konfiguracyjny Linuksa na taki, który działa w systemie Windows, dla mnie jest to po prostu:
źródło
Możesz spróbować:
ustaw na nginx.conf
location / static / {alias / nginx / html / staticfiles /; }
źródło
wygląda na to, że alias w ogóle nie działa w moim systemie Windows. Próbowałem pisać
ale nawet to nie działa. Nie mogę znaleźć sposobu na wyprowadzenie lokalizacji po ponownym załadowaniu pliku konfiguracyjnego przez nginx. Więc po prostu nie używaj aliasu w Windows dla Nginx.
źródło
alias ../../cde/folder;
załóżmy, że plik nginx.exe znajduje się w folderze d: / abc / nginx, ale folder, który próbujesz uzyskać alias, znajduje się w folderze d: / cde /. Niektóre źródła wspominają, że nginx został zakodowany na stałe ze ścieżką/cygdrive/c/nginx/
, w takim przypadkualias /cygdrive/d/path/
należy go użyć, ale to nie działa dla mnie. Warto również wspomnieć, że ukośnik na końcu ścieżki aliasu nie powinien być pomijany.W przypadku Nginx w systemie Windows musisz użyć tej metody:
lokalizacja / foo {
root C: // pathtoyourfile / folder1 / folder2;
} gdzie foo jest właściwym folderem w folderze 2
źródło