Yanıtlar:
Bu cevaplar güncel olmamalıdır. Nginx 1.3.8 kullanarak eğik çizgi ile mutlak yollar çalışır. Ters eğik çizgiler çalışıyor gibi görünüyor, ancak iki katına çıkarılmalıdır. Onlar değilse o zaman bazıları gibi, bir iz \"
gibi tam anlamıyla alınır.
location /static/ {
# alias "C:\\foo\\bar\\...\\static\\";
alias "C:/foo/bar/.../static/";
expires 90d;
}
Tırnaklar gerekli olmayabilir, ancak gömülü boşluklar için iyi bir fikir gibi görünüyorlar.
Dikkatimi çeken bir diğer şey, sondaki eğik çizgiyle bitirme ile ilgili url ve diğer ad yolunu eşleştirmenin önemli olduğudur - uyumsuzluk ve çalışmaz.
Gibi mutlak bir yol belirtmeye çalışırsanız ...
location / {
alias C:\Users\SomeUser\mysite\static;
}
... o zaman bu konumdan bir dosya isteğinde bulunduğunuzda muhtemelen C: \ nginx \ logs \ error.log dosyasındaki hataları göreceksiniz:
2011/11/11 12:53:16 [error] 6236#0: *1 open() "/cygdrive/c/nginx/C:\Users\SomeUser\mysite\static\somefile.css
Nginx'i Windows'ta yapılandırırken, C: \ nginx dizinine göre olan yolları belirtin. Bu çalışıyor:
location / {
alias ../Users/SomeUser/mysite/static;
}
Şahsen, bunu öğrenmekten mutlu oldum çünkü nginx yapılandırmalarımı Windows ve Linux arasında beklediğimden biraz daha taşınabilir hale getiriyor. Bir Linux yapılandırma dosyasını Windows'ta çalışan bir dosyaya dönüştürmek için, benim için basitçe:
s|/home/myname/|../Users/Myname|
Bunu deneyebilirsiniz:
nginx.conf olarak ayarlanmış
konum / statik / {diğer ad / nginx / html / static dosya /; }
Görünüşe göre takma ad Windows sistemimde hiç çalışmıyor. Yazmaya çalıştım
alias "c:"
ama bu bile çalışmıyor. Konfigürasyon dosyası nginx tarafından yeniden yüklendikten sonra konumu göstermenin bir yolunu bulamıyorum. Yani sadece nginx için pencerelerde takma kullanmayın.
alias ../../cde/folder;
nginx.exe dosyanızın d: / abc / nginx konumunda olduğunu, ancak takma adını denediğiniz klasörü d: / cde / klasöründe bulduğunu varsayalım. Bazı kaynaklarda bu nginx yolu ile kodlanmış olan söz /cygdrive/c/nginx/
durumda hangi, alias /cygdrive/d/path/
kullanılması gerektiğini, ama bu benim için çalışmaz. Ayrıca takma yolun sonundaki eğik çizginin ihmal edilmemesi gerektiğini belirtmeyi de hak ediyor.
Pencerelerde Nginx için bu yöntemi kullanmanız gerekir:
konum / foo {
root C: // pathtoyourfile / folder1 / folder2;
} burada foo, folder2 içindeki gerçek bir klasördür