如何服务于nginx的HTML文件而不显示在此别名设置扩展(how to serve html fi

2019-07-21 18:53发布

我遇到了很多麻烦,这个别名设置里面的nginx正确地显示我的网站。

该网站我关心的是应该从访问mywebsite.com/mr ,距离位于地点不同mywebsite.com/ 。 该网站位于/fullpath (简称为简单起见)的网站需要有三个类型的内容:

  1. 位于索引文件/fullpath/index.html
  2. 其他HTML文件(不显示.html在浏览器扩展)。
  3. 静态资产(JS / CSS /图片)位于/fullpath和子目录。

我试着围在比赛的顺序改变try_files ,发现他们所有的工作,只是没有在同一时间的情况:

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;
}

当一个人不工作是404分的。 有谁知道我怎样才能正确地为所有类型的文件?

Answer 1:

显然,别名和try_files 不一起工作 。 不过,我不认为你需要使用别名。

location /mr {
  default_type "text/html";
  try_files  /fullpath/$uri /fullpath/$uri.html /fullpath/$uri/index.html  /fullpath/index.html;
}

这将尝试:

  • 确切的文件。
  • 与.html文件添加。
  • 指数的路径。
  • 默认的索引。

我认为根本没有指令使用try文件的工作,但我无法测试。

server{
    location /mr {

        root /home/mysite/fullpath;

        default_type "text/html";
        try_files  $uri $uri.html $uri/index.html index.html;
    }
}


Answer 2:

我用的是什么@Danack发布害得我我一直在寻找(发球直接HTML文件)的结果组合:

location /health-check {
    default_type "text/html";
    alias /path/to/my/file.html;
}


文章来源: how to serve html files in nginx without showing the extension in this alias setup
标签: html nginx alias