nginx + 一个端口 布置多个单页运用(history形式)

现在web开辟 运用平常前后端星散手艺,而且前端担任路由。为了雅观,会采纳前端会采纳h5 history 形式的路由。但革新页面时,前端真的会根据假路由去后端寻觅文件。此时,后端必需返回index(index.html)文件才不至于返回404。

nginx 布置一个单页运用很简朴:

   location / {
      root   html;
      try_files $uri /index.html index.html;
   }

root是web服务器目次,try_files 为文件婚配,先找实在的地点($uri),假如找不到,再找index.html文件。
#此处注重,history形式不可以运用相对位置引入体式格局(./)

但假如几个单页运用同时须要布置在统一台电脑上,而且都须要占用80或许443端口,就不太轻易了。

引见2种雷同ip端口布置多个单页运用(前端路由)的要领。

  1. 运用子域名辨别,此种要领最是简朴。然则限定也大,必须要买域名,或许修正接见者电脑的hosts文件。

    server {
        listen       80;
        server_name  aa.gs.com;  #子域名aa接见时
        localtion / {
           root E:/ee; #windows 途径,E盘下面ee文件为aa.gs.com的服务器目次。
           try_files $uri /index.html index.html;
        }
    }
    server {
       listen       80;
       server_name bb.gs.com; #接见子域名bb时。
       location / {
           root   /root/bb; # linux /root/bb文件夹作为服务器目次。
           try_files $uri /index.html index.html;
       }
    
    }
    
  2. 采纳途径的第一个文件夹名字作为辨别。比方:https://aa.com/a/xxhttps://aa.com/b/xx。采纳ab作为辨别,离别示意差别的项目。
    须要设置点:

    1. 前端打包后的文件援用地点,须要加上'/a/' '/b/'为前缀 。比方 <script scr="/a/test.js"></script>(webpack 为设置publicPath: ‘/a’)
    2. 前端的路由途径必需加上/a/前缀:比方真正地点test.com/ss,需改成test.com/a/ss
       server {
           listen       80;
           root /root/test; #web服务器目次;
           location ^~ /a/{
             try_files $uri /a/index.html;  #假如找不到文件,就返回 /root/test/a/index.html
           }
           location ^~ /b/{
            try_files $uri /b/index.html; #假如找不到文件,就返回 /root/test/b/index.html
           }
          
      }
    原文作者:吃个石头
    原文地址: https://segmentfault.com/a/1190000017055132
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞