Como especificar caminhos de arquivo do Windows no nginx


22

Estou usando a versão oficial do nginx para Windows. Eu quero especificar o Windows equivalente a esta configuração

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

Como especificar caminhos de arquivo do Windows na diretiva de alias? Isso é possível?

Respostas:


17

Essas respostas devem estar desatualizadas. O uso de caminhos absolutos do nginx 1.3.8 com barras avançadas funciona. As barras invertidas parecem funcionar, mas devem ser dobradas. Se não forem, algumas \"são, literalmente, uma trilha .

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

As aspas podem não ser necessárias, mas parecem uma boa ideia no caso de espaços incorporados.

Outra coisa que notei é que é importante combinar o caminho da URL e do alias em relação a terminar com uma barra final ou não - uma incompatibilidade e ela não funciona.


Ainda funciona no nginx 1.8.1
Daniel

Seu conselho para usar aspas para lidar com espaços em branco me ajudou muito!
Bata

5

Se você tentar especificar um caminho absoluto como ...

location / {
    alias C:\Users\SomeUser\mysite\static;
}

... depois de solicitar um arquivo a partir desse local, você provavelmente verá erros em C: \ nginx \ logs \ error.log como:

2011/11/11 12:53:16 [error] 6236#0: *1 open() "/cygdrive/c/nginx/C:\Users\SomeUser\mysite\static\somefile.css

Ao configurar o nginx no Windows, especifique os caminhos relativos ao diretório C: \ nginx. Isso funciona:

location / {
    alias ../Users/SomeUser/mysite/static;
}

Pessoalmente, fiquei feliz em saber disso, pois torna minhas configurações nginx um pouco mais portáteis entre o Windows e o Linux do que eu esperava. Para transformar um arquivo de configuração do Linux em um que funcione no Windows, para mim é basicamente apenas:

s|/home/myname/|../Users/Myname|

Isso funciona com o nginx 1.9.10, obrigado!
NenadP 9/02/16

2

Você pode tentar isso:

  1. copie seus arquivos estáticos para nginx / html / staticfiles
  2. definido no nginx.conf

    local / static / {alias / nginx / html / staticfiles /; }


1

Parece que o alias não funciona no meu sistema Windows. Eu tentei digitar

alias "c:"

mas mesmo isso não funciona. E não consigo encontrar uma maneira de produzir o local depois que o arquivo de configuração é recarregado pelo nginx. Portanto, simplesmente não use o alias no Windows para o nginx.


Para o nginx 1.5.6, a seguinte configuração funciona: alias ../../cde/folder;suponha que o seu nginx.exe localize em d: / abc / nginx, mas a pasta que você tenta alias localiza na pasta d: / cde /. Algumas fontes mencionam que o nginx foi codificado com o caminho /cygdrive/c/nginx/, caso em que alias /cygdrive/d/path/deve ser usado, mas isso não funciona para mim. Também é importante mencionar que a barra no final do caminho do alias não deve ser negligenciada.
TonyTony

Estou tentando migrar o nginx.conf do linux para o win10. Os executáveis ​​do nginx estão em C: \ nginx, enquanto os arquivos exibidos estão em D: / bellaria_web / haus. O contexto 'root D: / bellaria_web / haus /;' parece não funcionar. Alguém pode explicar o que está errado?
AAG

0

Para o Nginx no Windows, você precisa usar este método:

localização / foo {

raiz C: // pathtoyourfile / folder1 / folder2;

} onde foo é uma pasta real dentro de folder2

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.