serve - cómo servir archivos html en nginx sin mostrar la extensión en esta configuración de alias
nginx try_files (2)
Aparentemente alias y try_files no funcionan juntos . Sin embargo, no creo que necesites usar alias.
location /mr {
default_type "text/html";
try_files /fullpath/$uri /fullpath/$uri.html /fullpath/$uri/index.html /fullpath/index.html;
}
Que probaría:
- Archivo exacto
- Archivo con .html agregado.
- Índice en el camino.
- Índice predeterminado.
Creo que la directiva raíz funciona con archivos try pero no puedo probar.
server{
location /mr {
root /home/mysite/fullpath;
default_type "text/html";
try_files $uri $uri.html $uri/index.html index.html;
}
}
Tengo muchos problemas para configurar este alias dentro de nginx para mostrar mi sitio web correctamente.
El sitio web que me interesa debe ser accesible desde mywebsite.com/mr
y es diferente del sitio ubicado en mywebsite.com/
. El sitio web está ubicado en /fullpath
(abreviado por simplicidad). El sitio necesita servir tres tipos de contenido:
- El archivo de índice ubicado en
/fullpath/index.html
. - Otros archivos html (sin mostrar la extensión
.html
en el navegador). - Activos estáticos (js / css / img) ubicados en
/fullpath
y subdirectorios.
Intenté cambiar el orden de las coincidencias en try_files
y encontré situaciones en las que todas funcionaron, pero no al mismo tiempo:
location /mr {
default_type "text/html";
alias /fullpath;
# with this one 1 and 3 work
# try_files $uri/index.html $uri.html $uri;
# with this one 2 and 3 work
# try_files $uri $uri.html $uri/index.html;
# with this one 1 and 2 work
try_files $uri.html $uri/index.html $uri;
}
Cuando uno no funciona, es 404''s. ¿Alguien sabe cómo puedo servir todo tipo de archivos correctamente?
Usé un combo de lo que @Danack publicó lo que me llevó al resultado que estaba buscando (servir el archivo html directamente):
location /health-check {
default_type "text/html";
alias /path/to/my/file.html;
}