Відповіді:
Ці відповіді повинні бути застарілими. Використання nginx 1.3.8 абсолютних шляхів з косою косою рисою працює. Зрозуміло, що зворотна коса працює, але її слід подвоїти. Якщо їх немає, то деякі, такі як крок \"
, сприймаються буквально.
location /static/ {
# alias "C:\\foo\\bar\\...\\static\\";
alias "C:/foo/bar/.../static/";
expires 90d;
}
Цитати можуть не знадобитися, але вони здаються гарною ідеєю у випадку вбудованих пробілів.
Ще одне, що я помітив, це те, що важливо відповідати шляху URL-адреси та псевдоніму щодо того, чи закінчується кінцева косою рисою чи ні - невідповідність, і це не працює.
Якщо ви спробуєте вказати абсолютний шлях, як ...
location / {
alias C:\Users\SomeUser\mysite\static;
}
... тоді, запитуючи файл з цього місця, ви, ймовірно, побачите помилки в C: \ nginx \ logs \ error.log, наприклад:
2011/11/11 12:53:16 [error] 6236#0: *1 open() "/cygdrive/c/nginx/C:\Users\SomeUser\mysite\static\somefile.css
Під час налаштування nginx у Windows вкажіть будь-які шляхи відносно каталогу C: \ nginx. Це працює:
location / {
alias ../Users/SomeUser/mysite/static;
}
Особисто я був радий дізнатися це, оскільки це робить мої конфігурації nginx трохи більш портативними між Windows та Linux, ніж я очікував, що вони будуть. Щоб перетворити файл конфігурації Linux у такий, який працює в Windows, для мене це в основному просто:
s|/home/myname/|../Users/Myname|
Ви можете спробувати це:
встановити в nginx.conf
location / static / {псевдонім / nginx / html / staticfiles /; }
Здається, псевдонім взагалі не працює для моєї системи Windows. Я намагався набрати
alias "c:"
але навіть це не працює. І я не можу знайти спосіб вивести розташування після того, як конфігураційний файл буде завантажений nginx. Тому просто не використовуйте псевдонім у Windows для nginx.
alias ../../cde/folder;
припустимо, ваш nginx.exe розташований у d: / abc / nginx, але папка, яку ви намагаєтеся отримати, псевдонім знаходиться в d: / cde / folder. Деякі джерела згадують, що nginx був жорстко закодований з контуром /cygdrive/c/nginx/
, і в цьому випадку alias /cygdrive/d/path/
слід використовувати, але це не працює для мене. Також заслуговує на те, що косою рисою вперед в кінці шляху псевдоніму не слід нехтувати.
Для Nginx у Windows потрібно використовувати цей метод:
розташування / foo {
корінь C: // pathtoyourfile / folder1 / folder2;
} де foo - фактична папка всередині папки2