Vue+ElementUI 搭建后台管理系统(实战系列八)

前言

使用ElementUI已经有一段时间了,在一边上手开发后台管理系统的同事,也记录了一些笔记,一直都没有时间将这些零零散散的笔记总结起来,整理成一个比较系统详细一点的教程,可以留着以后来看。


Vue+ElementUI 搭建后台管理系统(实战系列八)-打包部署到服务器的问题
vue-element-admin里面使用npm run build:prod打包步骤

1:打开 .env.development将接口地址设置成线上访问,注释本地VUE_APP_BASE_API = '/'

ENV = 'development'

# 接口地址
VUE_APP_BASE_API  = '/'
#VUE_APP_WS_API = 'http://192.168.4.103:8091/'

# 是否启用 babel-plugin-dynamic-import-node插件
VUE_CLI_BABEL_TRANSPILE_MODULES = true

2:打开.env.local文件和.env.production文件,同上

3:打开vue.config.js,注释掉proxy,proxy代理在打包的时候需要注释,平时开发需要开着。

  //打包的时候需要注释
    //平时开发需要开着
    // proxy: {
    //   '/api': {
    //     target: process.env.VUE_APP_BASE_API,
    //     changeOrigin: true,
    //     pathRewrite: {
    //       '^/api': 'api'
    //     }
    //   },
    //   '/check': {
    //     target: process.env.VUE_APP_BASE_API,
    //     changeOrigin: true,
    //     pathRewrite: {
    //       '^/check': 'check'
    //     }
    //   }
    // }

4:关于使用npm run build:prod命令进行打包后白屏的问题

会出现这样的情况生成了一个静态的文件夹打开index.html的时候,会出现页面空白的问题,打开F12查看一下这是为啥,会发现这些文件的路径访问不到。
图片.png

解决办法,需要打开routers.js文件,路由模式将histroy改成hash模式,起初 mode:'history'

打开vue.config.js文件,打开

// hash 模式下可使用
  publicPath: process.env.NODE_ENV === 'development' ? '/' : './',

注释掉

 //publicPath: './',

5:重新执行命令,npm run build:prod,即可

使用npm run build:prod 遇到的请求被重定向的问题

在vue的项目开发完成之后,需要使用npm run build

在本地的dist静态目录打开,index.html进行访问的时候,会发现这样的一个问题。

Request method 'GET' not supported

打开F12,查看报错,可以发现,在登录的这个请求上,原本的post请求,被重定向成get 请求了,所以才会报错。

那么,为什么在本地测试环境里面一些正常的项目,使用了npm run build:prod ,打包之后,就会出现了问题哩?,带着这个疑问,我上网百度了一下,找到了原因,我在开发项目的时候使用到了反向代理,Nginx反向代理后Post请求自动转换为Get,虽然不知道是啥子原理,那总算是找到了问题所在了。

解决办法:
在打包之前,将代理注释一下,打开vue.config.js文件,找到proxy
将这一段代码注释掉,重新打包即可解决问题。

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些基本的步骤: 1.创建一个 Vue 项目 您可以使用 Vue CLI 创建一个新的 Vue 项目: ``` vue create my-project ``` 2.安装 Element UI 使用 npm 或者 yarn 安装 Element UI: ``` npm install element-ui -S ``` 或者 ``` yarn add element-ui ``` 3.在 main.js 中引入 Element UI 在 main.js 中引入 Element UI 的 CSS 和 JS 文件: ```javascript import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 4.创建一个基础布局 可以使用 Element UI 提供的布局组件来创建一个基础的后台管理系统布局: ```html <template> <div class="app-container"> <el-container> <el-header> <!-- Header content --> </el-header> <el-container> <el-aside> <!-- Sidebar content --> </el-aside> <el-main> <!-- Main content --> </el-main> </el-container> <el-footer> <!-- Footer content --> </el-footer> </el-container> </div> </template> <script> export default { name: 'App', data () { return { // ... } }, methods: { // ... } } </script> <style> .app-container { height: 100%; } </style> ``` 5.添加路由 使用 Vue Router 添加路由,以便在后台管理系统中切换页面: ```javascript import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) export default new Router({ mode: 'history', routes: [ { path: '/', name: 'home', component: Home }, { path: '/about', name: 'about', component: About } ] }) ``` 6.创建页面组件 创建页面组件并在路由中使用它们: ```html <template> <el-container> <el-header> <!-- Header content --> </el-header> <el-container> <el-aside> <!-- Sidebar content --> </el-aside> <el-main> <h1>{{ title }}</h1> <p>{{ content }}</p> </el-main> </el-container> <el-footer> <!-- Footer content --> </el-footer> </el-container> </template> <script> export default { name: 'Home', data () { return { title: 'Home page', content: 'Welcome to the home page!' } }, methods: { // ... } } </script> ``` 7.添加导航菜单 使用 Element UI 的导航菜单组件创建一个侧边栏导航菜单: ```html <template> <el-container> <el-aside> <el-menu :default-active="activeIndex" class="el-menu-vertical-demo" @select="handleSelect"> <el-menu-item index="/"> <i class="el-icon-location"></i> <span slot="title">Home</span> </el-menu-item> <el-menu-item index="/about"> <i class="el-icon-menu"></i> <span slot="title">About</span> </el-menu-item> </el-menu> </el-aside> <el-container> <el-main> <router-view></router-view> </el-main> </el-container> </el-container> </template> <script> export default { name: 'App', data () { return { activeIndex: '/' } }, methods: { handleSelect (index) { this.activeIndex = index } } } </script> ``` 这样就可以创建一个基本的后台管理系统,您可以根据需要添加更多页面和功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值