Я использую официальную версию 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|
Вы можете попробовать это:
установить в nginx.conf
расположение / статический / {псевдоним / nginx / html / staticfiles /; }
похоже, что псевдоним вообще не работает для моей системы Windows. Я пытался напечатать
alias "c:"
но даже это не работает. И я не могу найти способ вывести местоположение после перезагрузки файла конфигурации с помощью nginx. Поэтому просто не используйте псевдоним в Windows для nginx.
Для Nginx в Windows вы должны использовать этот метод:
location / foo {
корень C: // путь к вашему файлу / folder1 / folder2;
} где foo - это настоящая папка внутри folder2