nginx 伪静态404_0基础教你---Vue全家桶+Nginx+docker部署

c6e8e590a20c6426d3b655d60d4bba2a.png

0.Vue项目下config/index.js

assetsPublicPath: '/' --> assetsPublicPath: './'

build/utils.js

3c6176d7ab8f9a38e87b72938840178c.png

1.在Vue项目文件下,输入npm run build 进行打包,项目下生成dist文件。

0e9c29e1c4c66fb375334ae1b1fe8015.png

2.将dist文件上传到服务器中,在同目录下创建Dockerfile文件

96a95d5df1cad4bfe9589479e770046e.png

3.Dockerfile内容:

7f301f449fad8ccb1d101a9718196317.png

FROM nginx

MAINTAINER jam

# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面

COPY dist/ /usr/share/nginx/html/

4.编译docker镜像

//-t 是镜像名为docker-prod

// . 是当前路径

docker build -t docker-prod .

3895b80f595a9582c7fbd93280dae410.png

5.docker容器运行

// -p 把docker 80端口映射到宿主机的8848端口

// -d docker容器后台启动

//docker-prod 镜像名

docker run -p 8848:80 -d docker-prod

6.此时容器已经可以运行了。(curl http://内网ip:端口 可以看到成功运行)

注意:这里开放安全组的相应端口(本文是8848端口,具体依 docker 端口映射情况有所改)

7.此时页面(vue项目)可以成功访问,但是history下,页面一刷新就会出现404错误。Vue是单页面应用

在Nginx配置中增加相应配置即可(文章后面会附上Nginx配置)

271d0c516f28b400b9fea27c6f41c0b6.png

8.Vue项目在本地npm run dev可以请求api后端接口,但是部署后会失效。

vue项目config/index.js

5f712b79d7a818fea2c90030c4614d85.png

所以需要修改Nginx反向代理。Vue只是一个打包生成一个静态页面。

9.修改Nginx配置(本文为了方便,选择直接在docker 容器中进行Nginx配置。也可以选择挂 载Nginx配置文件)

//-it 终端显示

//bash 容器进入执行bash命令

f3ec5241c36dc21739b0a135908a9e7e.png

进入docker 容器内后,

安装vim 命令

apt-get update

apt-get install vim

cd /etc/nginx/conf.d 注意是docker容器内的路径

vi default.conf

333e71683ed14408a717c29a34670ea5.png

10.此时已经部署成功!

附:Nginx关键配置

location / {

root /usr/share/nginx/html;

index index.html index.htm;

try_files $uri $uri/ /index.html;

}

location /api/blog/ {

proxy_pass http://www.xxx.cn:port;

}

location /api/login/ {

proxy_pass http://www.xxx.cn:port/; //尾巴有 /反向代理时会自动去掉/api/login

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值