最近遇到的bug

1.访问404问题

在Linux中自动部署某个项目后,点击某个指定页面后再点击其他页面发现直接404了。

仔细寻找后发现是在前端的路由中设置了createWebHistory模式(HTML5 History)

这种模式下:

  • 前端路由是"无#号"的(如 http://xxx/enterQuit/checkIn)
  • 当用户刷新页面或直接访问子路由时,浏览器会把整个路径(如/enterquit/checkIn)发送给后端。
  • 如果后端(如 Nginx、Tomcat 等)没有配置"找不到资源时转发到 index.html",就会返回 404。

解决办法: 由于我的前端是nginx的,所以此处只介绍我是如何解决nginx前端出现这种404问题的解决办法。

其实非常简单,修改nginx的配置文件nginx.conf,在location中加入try_files u r i uri uriuri/ /index.html;这一行配置,意思是在找不到资源时,转到发index.html,有前端页面接管页面渲染,这样就可以解决404的问题了

2.Linux中自动部署后带参数的自动启动

在Linux自动部署后遇到一个问题:使用aliyun的oss上传时,部署的项目后端中读取到的密钥和在Linux系统中读取到的密钥不同,可能是出现了读取转换的问题,我也不知道具体是什么问题:

解决办法: 既然读取有问题,那不妨直接在启动自动部署的后端时就让他带着这两个参数启动,就不会出现从Linux中读取参数从而出现转换的问题了:

  • 有一种比较直接的办法就是直接在docker start的命令中就用-e的方式提供参数,这样的方式见效快,但是问题就是每次启动都要带上这个参数,其实还是比较麻烦的:
ini 复制代码
- docker run -d \ -p 9000:9000 \ # 映射端口(保持和之前一致) 
-e OSS_ACCESS_KEY_ID=$OSS_ACCESS_KEY_ID \ # 传递 AccessKeyId 
-e OSS_ACCESS_KEY_SECRET=$OSS_ACCESS_KEY_SECRET \ # 传递 AccessKeySecret 
--name zzyl-admin \ # 容器名(可自定义) 
zzyl-admin:V1.0 # 镜像名(和之前一致)
  • 第二种办法就是配置一个Docker-compose配置文件,一次配置永久使用:
bash 复制代码
//新建一个文件夹
mkdir zzyl-admin-docker && cd zzyl-admin-docker

//用编辑器打开并编辑文件
vim docker-compose.yml

//yml文件内容
version: '3'
services:
  zzyl-admin:  # 服务名(自定义)
    image: zzyl-admin:V1.0  # 你的镜像名
    container_name: zzyl-admin  # 容器名(自定义)
    ports:
      - "9000:9000"  # 端口映射(保持和之前一致)
    environment:  # 环境变量配置(核心)
      - OSS_ACCESS_KEY_ID=${OSS_ACCESS_KEY_ID}  # 引用宿主机的环境变量
      - OSS_ACCESS_KEY_SECRET=${OSS_ACCESS_KEY_SECRET}
    restart: always  # 可选:容器退出时自动重启(比如服务器重启后)

//启动容器(后台运行)
docker-compose up -d

//进入容器
docker exec -it zzyl-admin /bin/bash

//查看环境变量(应该能正确输出密钥)
echo $OSS_ACCESS_KEY_ID
echo $OSS_ACCESS_KEY_SECRET
### 后续管理(全是简单命令)

-   停止容器:docker-compose down
-   重新启动:docker-compose restart
-   查看日志:docker-compose logs -f(实时查看)

这样就可以实现每次启动docker时候自动启动后端了,并且会带上oss的密钥,从而实现oss上传的功能。

相关推荐
鬼手点金8 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
蛋蛋的就会顺顺的8 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
贵州诚鑫致达科技有限公司9 小时前
Linux的yum源怎么重启?源不是服务
linux·运维·服务器
程序员Sunday9 小时前
TypeScript 的 any、unknown、never 有什么区别?
前端·面试·typescript
朱涛的自习室9 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
码艺-Alimjan9 小时前
Tauri 源码备份 · 打包 & 解压 总结,源码收集之路
前端·javascript·vue.js
小马不起床9 小时前
零基础玩转 FastAPI_11:前端后台管理页面
前端·状态模式·fastapi
子非鱼a11 小时前
【文件上传】一个普普通通的edu16
前端
美狐美颜SDK开放平台11 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
澜山奕秋12 小时前
RHCSA
linux·运维·服务器