如何从 nginx 中的任意 url 路径提供静态 html?

use*_*108 5 nginx

我想example.com/mypage.htmlexample.com/mypage.

在 nginx.conf 中,我尝试放入mypage.html指定的根目录,然后

location /mypage}
 alias mypage.html;
}
Run Code Online (Sandbox Code Playgroud)

但是没有骰子。应该是类似的吧?

编辑:如果我将 '/' 的整个路径放在别名中,它可以工作,但我宁愿让它相对于设置的根目录。如何引用我之前在配置中定义的根目录:

root /usr/share/nginx/www;
Run Code Online (Sandbox Code Playgroud)

此外,当我这样做并且客户端请求 /mypage 时,nginx 默认为八位字节流文件类型。如何为我这样定义的 URL 强制使用 text/html?

Jap*_*Mul 7

您可以将以下内容添加到您的location /块中,使其适用于所有页面。这将首先尝试为请求的 uri 提供服务,如果这不起作用,它将尝试使用 html 扩展名提供服务(不将其添加到 url 中)

location / {
    try_files $uri $uri.html $uri/ /index.html;
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望它仅适用于一页,您可以将以下内容添加到您的服务器块

location ~ /mypage {
    try_files $uri.html /index.html;
}
Run Code Online (Sandbox Code Playgroud)