Nginx'te Windows dosya yollarını nasıl belirtirim


22

Nginx'in resmi Windows sürümünü kullanıyorum. Bu yapılandırmaya eşdeğer pencereleri belirtmek istiyorum

location /static/ {
   alias /home/user/staticfiles/;
}

Diğer ad direktifinde windows dosya yollarını nasıl belirlerim? Bu mümkün mü?

Yanıtlar:


17

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.


Hala nginx 1.8.1'de çalışıyor
Daniel

Boşlukları işlemek için tırnak kullanmak için öneriniz bana çok yardımcı oldu!
yendi

5

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|

Bu nginx 1.9.10 ile çalışır, teşekkürler!
NenadP

2

Bunu deneyebilirsiniz:

  1. statik dosyalarınızı nginx / html / staticfiles içine kopyalayın
  2. nginx.conf olarak ayarlanmış

    konum / statik / {diğer ad / nginx / html / static dosya /; }


1

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.


Nginx 1.5.6 için aşağıdaki kurulum çalışır: 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.
TonyTony

Nginx.conf dosyasını linux'dan win10'a taşımaya çalışıyorum. Nginx çalıştırılabilir dosyaları C: \ nginx konumunda iken, sunulan dosyalar D: / bellaria_web / haus konumunda. 'Kök D: / bellaria_web / haus /;' bağlamı işe görünmüyor Birisi neyin yanlış olduğunu açıklayabilir mi?
aag

0

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.