【angular-实践】nginx部署angular项目
目录nginx根目录部署angular项目nginx子目录部署angular项目其他方法-docker(未实践)readme我的项目名叫qlnc-adminnginx用docker装的,nginx的/usr/share/nginx/html目录挂载在/home/nginx/html一 nginx根目录部署angular项目打包ng build --prod将生成文件夹dist/qlnc-admin
·
readme
- 我的项目名叫
qlnc-admin
- nginx用docker装的,nginx的
/usr/share/nginx
目录挂载在/home/nginx
一 nginx根目录部署angular项目
- 打包
ng build --prod
- 将生成文件夹
dist/qlnc-admin
中的qlnc-admin
文件夹拷贝到/home/nginx/html
根目录下 - 配置nginx
带有路由的项目需要加上try_files $uri $uri/ /index.html;
,否则配置的子路由等无法使用
location / {
root /usr/share/nginx/html/qlnc-admin/;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
- 启动nginx
docker run --name nginx -p 80:80 -p 443:443 \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-v /home/nginx/cert:/etc/nginx/cert \
-d nginx
- 访问
www.xxx.com/login
参考
二 nginx子目录部署angular项目
2.1 项目放在nginx根目录
这里的子目录应该指的是访问www.xxx.com/qlnc/login
中的qlnc
,而不是指将项目拷贝到nginx/html/qlnc
文件夹下(如果要放到多层文件夹下,看后文)
- 打包
ng build --base-href=/qlnc/ --prod
--base-href=/qlnc/
指定访问的二级目录,也可直接修改打包目录下的index.html
里的base href
,参考
- 将生成的
dist
下的qlnc-admin
拷贝到nginx/html目录下 - 配置nginx
location /qlnc {
alias /usr/share/nginx/html/qlnc-admin;
index index.html index.htm;
try_files $uri $uri/ /qlnc/index.html;
}
注意 root 和 alias 指令的区别:
root指令会将配置的路径 location 加到 root 的路径参数后面,即/usr/share/nginx/html/qlnc-admin/qlnc
,而alias指令则不会
- 启动nginx(同上)
- 访问
https://www.xxx.com/qlnc
2.2 项目放到nginx多层文件夹下
- 将打包的项目
qlnc-admin
拷贝到/home/nginx/html/qlnc0/
下,qlnc0
是多建的一层目录 - 修改
nginx.conf
location /qlnc {
alias /usr/share/nginx/html/qlnc0/qlnc-admin;
index index.html index.htm;
try_files $uri $uri/ /qlnc/index.html;
}
- 启动nginx(同上)
- 访问
https://www.xxx.com/qlnc
参考
三 其他方法
更多推荐
已为社区贡献1条内容
所有评论(0)