Як вказати шляхи до файлів Windows у nginx


22

Я використовую офіційну версію Windows nginx. Я хочу вказати Windows еквівалент цієї конфігурації

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

Як вказати шляхи до файлів Windows у директиві про псевдонім? Це навіть можливо?

Відповіді:


17

Ці відповіді повинні бути застарілими. Використання nginx 1.3.8 абсолютних шляхів з косою косою рисою працює. Зрозуміло, що зворотна коса працює, але її слід подвоїти. Якщо їх немає, то деякі, такі як крок \", сприймаються буквально.

location /static/ {
    # alias "C:\\foo\\bar\\...\\static\\";
    alias "C:/foo/bar/.../static/";
    expires 90d;
}

Цитати можуть не знадобитися, але вони здаються гарною ідеєю у випадку вбудованих пробілів.

Ще одне, що я помітив, це те, що важливо відповідати шляху URL-адреси та псевдоніму щодо того, чи закінчується кінцева косою рисою чи ні - невідповідність, і це не працює.


Тим НЕ менше працює в Nginx 1.8.1
Daniel

Ваша порада використовувати лапки для обробки білих просторів мені дуже допомогла!
Удар

5

Якщо ви спробуєте вказати абсолютний шлях, як ...

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 1.9.10, спасибі!
НенадP

2

Ви можете спробувати це:

  1. скопіюйте статичні файли в nginx / html / staticfiles
  2. встановити в nginx.conf

    location / static / {псевдонім / nginx / html / staticfiles /; }


1

Здається, псевдонім взагалі не працює для моєї системи Windows. Я намагався набрати

alias "c:"

але навіть це не працює. І я не можу знайти спосіб вивести розташування після того, як конфігураційний файл буде завантажений nginx. Тому просто не використовуйте псевдонім у Windows для nginx.


Для nginx 1.5.6 працює наступна установка:, alias ../../cde/folder;припустимо, ваш nginx.exe розташований у d: / abc / nginx, але папка, яку ви намагаєтеся отримати, псевдонім знаходиться в d: / cde / folder. Деякі джерела згадують, що nginx був жорстко закодований з контуром /cygdrive/c/nginx/, і в цьому випадку alias /cygdrive/d/path/слід використовувати, але це не працює для мене. Також заслуговує на те, що косою рисою вперед в кінці шляху псевдоніму не слід нехтувати.
TonyTony

Я намагаюся перенести nginx.conf з Linux на win10. Виконані файли nginx знаходяться в C: \ nginx, тоді як файли, що подаються, знаходяться на D: / bellaria_web / haus. Контекст 'корінь D: / bellaria_web / haus /;' не здається, працює. Хтось може пояснити, що не так?
ааг

0

Для Nginx у Windows потрібно використовувати цей метод:

розташування / foo {

корінь C: // pathtoyourfile / folder1 / folder2;

} де foo - фактична папка всередині папки2

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.