Odpowiedzi:
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 ...
location / {
alias C:\Users\SomeUser\mysite\static;
}
... wtedy po zażądaniu pliku z tej lokalizacji prawdopodobnie zobaczysz błędy w C: \ nginx \ logs \ error.log, takie jak:
2011/11/11 12:53:16 [error] 6236#0: *1 open() "/cygdrive/c/nginx/C:\Users\SomeUser\mysite\static\somefile.css
Konfigurując nginx w systemie Windows, podaj ścieżki w stosunku do katalogu C: \ nginx. To działa:
location / {
alias ../Users/SomeUser/mysite/static;
}
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:
s|/home/myname/|../Users/Myname|
Możesz spróbować:
ustaw na nginx.conf
location / static / {alias / nginx / html / staticfiles /; }
wygląda na to, że alias w ogóle nie działa w moim systemie Windows. Próbowałem pisać
alias "c:"
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.
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 przypadku alias /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