Назад | Перейти на главную страницу

Как указать пути к файлам Windows в nginx

Я использую официальную версию nginx для Windows. Я хочу указать эквивалент этой конфигурации для Windows

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

Как указать пути к файлам Windows в директиве псевдонима? Это вообще возможно?

Эти ответы должны быть устаревшими. Использование абсолютных путей 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|

Вы можете попробовать это:

  1. скопируйте свои статические файлы в nginx / html / staticfiles
  2. установить в nginx.conf

    расположение / статический / {псевдоним / nginx / html / staticfiles /; }

похоже, что псевдоним вообще не работает для моей системы Windows. Я пытался напечатать

alias "c:"

но даже это не работает. И я не могу найти способ вывести местоположение после перезагрузки файла конфигурации с помощью nginx. Поэтому просто не используйте псевдоним в Windows для nginx.

Для Nginx в Windows вы должны использовать этот метод:

location / foo {

корень C: // путь к вашему файлу / folder1 / folder2;

} где foo - это настоящая папка внутри folder2