Risposte:
Queste risposte devono essere obsolete. L'uso di nginx 1.3.8 percorsi assoluti con barre dirette funziona. Le barre rovesciate sembrano funzionare, ma dovrebbero essere raddoppiate. Se non lo sono, alcuni, come un trailing, \"
sono presi alla lettera.
location /static/ {
# alias "C:\\foo\\bar\\...\\static\\";
alias "C:/foo/bar/.../static/";
expires 90d;
}
Le virgolette potrebbero non essere richieste, ma sembrano una buona idea in caso di spazi incorporati.
Un'altra cosa che ho notato è che è importante abbinare il percorso url e alias per quanto riguarda la fine con una barra finale o meno - una mancata corrispondenza e non funziona.
Se provi a specificare un percorso assoluto come ...
location / {
alias C:\Users\SomeUser\mysite\static;
}
... quindi su richiesta di un file da quella posizione, probabilmente vedrai errori in C: \ nginx \ logs \ error.log come:
2011/11/11 12:53:16 [error] 6236#0: *1 open() "/cygdrive/c/nginx/C:\Users\SomeUser\mysite\static\somefile.css
Quando si configura nginx su Windows, specificare tutti i percorsi relativi alla directory C: \ nginx. Questo funziona:
location / {
alias ../Users/SomeUser/mysite/static;
}
Personalmente, sono stato felice di saperlo perché rende le mie configurazioni nginx un po 'più portabili tra Windows e Linux di quanto mi aspettassi. Per trasformare un file di configurazione Linux in uno che funziona su Windows, per me è sostanzialmente solo:
s|/home/myname/|../Users/Myname|
Puoi provare questo:
impostato in nginx.conf
location / static / {alias / nginx / html / staticfiles /; }
sembra che l'alias non funzioni affatto per il mio sistema Windows. Ho provato a scrivere
alias "c:"
ma anche questo non funziona. E non riesco a trovare un modo per generare l'ubicazione dopo che il file di configurazione è stato ricaricato da nginx. Quindi semplicemente non usare l'alias in Windows per nginx.
alias ../../cde/folder;
supponiamo che nginx.exe sia localizzato in d: / abc / nginx, ma la cartella che si tenta di alias si trova in d: / cde / cartella. Alcune fonti affermano che nginx è stato codificato con il percorso /cygdrive/c/nginx/
, nel qual caso alias /cygdrive/d/path/
dovrebbe essere usato, ma questo non funziona per me. Merita inoltre di menzionare che la barra in avanti alla fine del percorso alias non deve essere trascurata.
Per Nginx su Windows devi usare questo metodo:
location / foo {
root C: // pathtoyourfile / folder1 / folder2;
} dove foo è una cartella reale all'interno di folder2