網址:https://blog.csdn.net/weixin_38023551/article/details/88640939
上一篇已經介紹了然后配置web項目;今天由於公司需求,需要在同一域名端口下,部署兩個項目;今天花了一上午終於弄好了,選擇趕緊做一個筆記。
如何連接阿里雲服務器就不在這里說了,請看我以前的文章。
首先需要的效果
http://47.97.244.83/login
http://47.97.244.83/student/login
文件目錄
兩個項目並列在同一文件夾內。
准備好兩個vue的項目
http://47.97.244.83/login:這個不用修改配置直接build就可以。關鍵是二級域名的vue項目,需要進行一下修改。
首先在config文件夾內的index.js內修改(注意是build內)
// nginx 配置
assetsPublicPath: '/student/',
這樣確保生產出來的文件,在index.html中都是在student下。
2. index.html文件修改
添加 <meta base=/student/ >
最后build的index.html文件如下:
<!DOCTYPE html>
<html>
<head>
<meta base=/student/ >
<meta charset=utf-8>
<meta http-equiv=X-UA-Compatible content="IE=edge">
<meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=./favicon.ico>
<title>礪行教育管理系統</title>
<link href=/student/static/css/app.26c5efbf7403094b0b351615f215dca8.css rel=stylesheet>
</head>
<body>
<noscript><strong>對比起程序報錯了</strong></noscript>
<div id=app></div>
<script type=text/javascript src=/student/static/js/manifest.c07ff685ddc74bf39577.js></script>
<script type=text/javascript src=/student/static/js/vendor.63945df20397482ff39e.js></script>
<script type=text/javascript src=/student/static/js/app.39f0baab8f580b8d4bc2.js></script>
</body>
</html>
在src/router/index.js文件修改
添加 base: ‘/student/’,
Nginx配置修改
server {
listen 80;
server_name localhost;
# root /usr/local/sixiucheng/codes;
location / {
root /usr/local/sixiucheng/codes/dist;
try_files $uri $uri/ @router;
index index.html index.htm;
}
location /student {
alias /usr/local/sixiucheng/codes/student/;
try_files $uri $uri/ /student/index.html;
index index.html index.htm;
}
location @router {
rewrite ^.*$ /index.html last;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
注意這里的root
一個是全局的一個單個引入,這里需要注意一下當注釋掉全局的root時候,需要在二級配置下將root改為alias;如下圖
所以此時的配置為
最后一定要注意重啟!!!
nginx -s reload
1
注意:如果80端口失敗
1.檢查下nginx配置,使用nginx -t 看看有無錯誤信息
2.檢查本地防火牆是否開啟80
3.如果是雲主機,檢查安全組是否開放80權限。
題外話
01…剛開始將alias寫成root,導致html頁面中的css和js一直404;后來百度到加下面一句話,就可以解決問題;但是這樣會將所有的js,css引入的位置修改。這里注意一下。
# 解決css,js引入失敗
location ~ .*\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt)$
{
root /usr/local/sixiucheng/codes;
proxy_temp_path /usr/local/sixiucheng/codes;
}
02…網上還有alias的路徑指向,root和alias的區別在於(個人理解,出錯希望點出):
location /file/{
alias /var/html/file; #這個查找文件的路徑直接是/var/html/file
}
location /file/{
root /var/html/file; #這個查找文件的路徑應該是/var/html/file/file
}