Vue2前端增加上下文

需求描述:

1- 项目部署时存在两个Nginx, 一个Nginx支持vue项目的基本配置, 但是项目入口要配置在上一层Nginx上, 而且上一层Nginx包装了一层上下文;
2- 页面跳转时要保持上一层Nginx的上下文;
3- URL可以正常刷新

方案一:

上层Nginx的上下文转发时不转发到下层Nginx, 只做一层上下文的包装.

问题1: 静态资源加载失败

原因: 默认打包状态中静态资源加载路径单独设置.
解决方案: vue.config.js文件中找到modules.export中的publicPath参数, 该参数前面拼接上上层Nginx上下文即可;

问题2: 上层Nginx上下文丢失

原因: 在vue的导航守卫中, 当检测到用户未登录,会直接跳转到/login路径,该跳转并不会进行服务器的访问,所以可以成功显示登陆页面, 但是同时也造成了上层Nginx的上下文丢失
解决方案: 修改导航守卫,当用户未登录时跳转路径增加上下文.


??????? 这种方案可能会造成页面儿无法访问, 因为在原因分析中提到登录页面并不是访问服务器获得,而是根据vue的路由规则在前端自动跳转的, 如果增加了上下文可能造成路由无法命中, 可能直接显示无该页面, 也可能陷入登录页面调用循环, 有待进一步验证

问题3: 刷新后页面丢失

原因:
1- 由于问题2中上下文已经丢失, 在上层Nginx中配置的转发策略失效,造成刷新丢失.

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Docker中部署Vue前端项目,可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Docker。如果没有,请根据你的操作系统安装Docker。 2. 在你的Vue项目根目录下创建一个名为`Dockerfile`的文件。 3. 打开`Dockerfile`文件,并添加以下内容: ```Dockerfile # 使用一个基础的Node镜像作为构建环境 FROM node:14.17.0 as build-stage # 设置工作目录 WORKDIR /app # 拷贝package.json和package-lock.json到工作目录 COPY package*.json ./ # 安装依赖 RUN npm install # 拷贝工程文件到工作目录 COPY . . # 构建项目 RUN npm run build # 使用Nginx作为Web服务器 FROM nginx:1.21.3 # 将构建好的项目拷贝到Nginx的目录下 COPY --from=build-stage /app/dist /usr/share/nginx/html # 配置Nginx,使其能够正确地提供Vue应用程序 COPY nginx.conf /etc/nginx/conf.d/default.conf # 暴露80端口 EXPOSE 80 # 启动Nginx服务 CMD ["nginx", "-g", "daemon off;"] ``` 4. 在Vue项目根目录下创建一个名为`nginx.conf`的文件,并添加以下内容: ``` server { listen 80; server_name localhost; # 配置路由 location / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; } } ``` 5. 现在,使用以下命令构建Docker镜像: ``` docker build -t your_image_name . ``` 确保在命令末尾有一个点,这表示Docker将当前目录作为上下文传递给构建命令。 6. 构建完成后,可以使用以下命令运行Docker容器: ``` docker run -p 8080:80 your_image_name ``` 这将把容器的80端口映射到主机的8080端口。 现在,你的Vue前端项目已经在Docker中成功部署,并且可以通过访问`http://localhost:8080`来访问它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值