现在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端口布置多个单页运用(前端路由)的要领。
运用子域名辨别,此种要领最是简朴。然则限定也大,必须要买域名,或许修正接见者电脑的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; } }
采纳途径的第一个文件夹名字作为辨别。比方:
https://aa.com/a/xx
与https://aa.com/b/xx
。采纳a
与b
作为辨别,离别示意差别的项目。
须要设置点:- 前端打包后的文件援用地点,须要加上
'/a/'
'/b/'
为前缀 。比方<script scr="/a/test.js"></script>
(webpack 为设置publicPath: ‘/a’) - 前端的路由途径必需加上
/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 } }
- 前端打包后的文件援用地点,须要加上