Problema com o pedido JSON ao usar o try_files

1

Estou tentando usar try_files como sugerido aqui link e para o mesmo propósito.

Eu fiz uma alteração nele e é para remover a porção index.html do comando, da seguinte forma:

location / {
    try_files $uri $uri/ /;
}

No caso, parte do meu problema é que eu removi index.html . Eu notarei que estava recebendo o seguinte erro quando o tive:

rewrite or internal redirection cycle while internally redirecting to "/index.html"

Tanto quanto eu posso dizer que está funcionando como esperado, exceto que está agindo em solicitações JSON, mas não da maneira que eu gostaria. Em vez de obter uma resposta JSON, recebo o que parece ser qualquer outra página do meu site, mas sem conteúdo.

Seguindo os registros, vejo que, ao atingir /foo.json , sou redirecionado para / e, verificando o URL, vejo que /foo.json foi pushState ed nele.

Estou usando try_files incorretamente aqui? Se eu não sou, existe uma maneira de ignorar as solicitações JSON? Eu tentei colocar a declaração em uma condicional que verifica o tipo de conteúdo, mas quando eu iniciei o servidor eu recebi o seguinte erro:

nginx: [emerg] "try_files" directive is not allowed here in
/tmp/passenger-standalone.15snfcb/config:110
    
por Billy Monk 04.04.2018 / 22:27

1 resposta

0

Com a ajuda de Michael Hampton, desenvolvi a seguinte solução:

No meu bloco de servidores (desnecessários outros blocos / comandos removidos):

location / {
    try_files $uri $uri/ /;
}

location ~ ".+json$" { 
    passenger_enabled on; 
}

O regex não é completo o suficiente, mas satisfaz o problema com o qual eu estava lidando. Gostaria de encontrar uma solução que use o tipo de conteúdo de arquivos em vez de um regex.

    
por 07.04.2018 / 00:19

Tags