Vue3项目部署到服务器

打包命令

我们知道其实本质上浏览器只会读取html,css,javascript的脚本语言,而无法识别vue,所以在上传之前需要进行打包,也就是把vue转换成纯html文件

先检查package.json文件,找到vite build

所以,在我的项目中应该使用的命令是:

arduino 复制代码
 npm run build-only

而当build运行npm run build的时候是会进行语法检查,导致打包不成功的

遇到问题

开发环境直接部署到服务器上时,共遇到了两个问题:

  1. 第一个是网页刷新报错
  2. 另外一个是无法发送请求

网页刷新报错

解决方法

  1. 把history模式换成hash(不美观)
  2. 当后端找不到路径时,默认配置请求路由为index(麻烦)
  3. 配置nginx:在location下加入:
bash 复制代码
 location / {
        try_files $uri $uri/ /index.html;
    }

404报错

这是因为vue项目为了方便调试(npm run dev)会配置本地代理: 也就是vite.config.json文件中的server:

javascript 复制代码
import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import ViteMonacoPlugin from 'vite-plugin-monaco-editor-esm'

// https://vite.dev/config/
export default defineConfig({
  plugins: [vue(), vueDevTools(), ViteMonacoPlugin({})],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },

  //前端处理跨域问题
  server: {
    open: true,
    proxy: {
      '/api': {
        target: 'http://your.server.address:8081',

        changeOrigin: true,
        rewrite: (path) => path.replace(/\/api/, ''),
      },
    },
   }

})

但部署到服务器上时,是没有本地代理,也就意味着/api不会被转换为target路径,导致报404无法找到的错误。

解决方法:

既然缺少代理,那么我们就可以尝试在服务器中使用代理,比如nginx

配置nginx代理的步骤

bash 复制代码
 location /api/ {
        # 重写规则,去除 /api 前缀
        rewrite ^/api/(.*)$ /$1 break;
        proxy_pass http://localhost:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

注意

当配置不正确的时候,是会报401或者405的错误,这个时候原因不是路由不对,也不是后端接口的问题,而是nginx请求的路径配置不对,检查nginx.conf的配置文件即可。

相关推荐
JustHappy7 小时前
古法编程秘籍(七):互联网到底是什么?把两台电脑怎么说话搞懂就够了
前端·后端·网络协议
snow@li7 小时前
SEO-文章标题:写文章时候,分类+主标题+大纲+解释 作为标题 / 不点进去也知道全文覆盖什么 / 标题即架构
前端
kyriewen8 小时前
Git Commit 前自动修复代码风格?配置 Husky + lint-staged,从此 CR 只聊逻辑
前端·git·面试
小和尚同志8 小时前
AI 自动化测试探索(一):Playwright MCP
前端·人工智能·aigc
老马识途2.09 小时前
在AI的帮助下理解spring的启动过程
java·前端·spring
徐小夕9 小时前
Loop Engineering 深度解析与实战指南(全网最全)
前端·算法·github
运筹vivo@9 小时前
Python ContextVar 底层机制与内存模型拆解
前端·数据库·python
#麻辣小龙虾#11 小时前
基于vue3.0开发一款【固废与废气运维管理系统】(支持源码)
前端·vue.js·vue3
Cosolar11 小时前
Docsify零构建文档站完全指南:从快速搭建到企业级部署
前端·开源·github
weixin_4713830311 小时前
Taro-02-页面路由
前端·taro