Nginx代理静态html使用非根路径

11 篇文章 0 订阅

网上找了一堆Nginx代理静态页面的配置,很多都是把静态页面配置到根路径的,如:

  server {
        listen       8080;
        server_name  localhost;
		location / {
 			root   D:/demo;
     		index  index.html;
       }
  }

这样访问的http://localhost:8080就会访问了D盘demo目录的index.html

问题是现在我想要的效果是访问 http://localhost:8080/demo 才会访问D盘demo目录的index.html。找了一下文档,把root 改成 alias 即可,如:

  server {
        listen       8080;
        server_name  localhost;
		location /demo {
 			alias  D:/demo;
     		index  index.html;
       }
  }

注意: 如果你的index.html引入资源路径是相对路径,那么引用的时候,记得加上 /demo 例如:

<script type=text/javascript src=/static/js/manifest.js></script>

改成:

<script type=text/javascript src=/demo/static/js/manifest.js></script>

root 与 alias 区别

root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换location路径
alias是一个目录别名的定义,root则是最上层目录的定义。
alias后面必须要用“/”结束,否则会找不到文件的,而root则可有可无。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值