f

fatelyh

V1

2023/01/23阅读:23主题:默认主题

midway后端静态文件托管前端部署代码教程

涉及到的修改文件有configuration.ts、与configuration.ts同级目录的index.ts文件,view文件夹;config.default.ts;前端代码中需要修改vite.config.ts、

#1、configuration.ts中引入staticFile、view-ejs

import { Configuration, App } from '@midwayjs/decorator';
import * as staticFile from '@midwayjs/static-file';
import * as view from '@midwayjs/view-ejs';
@Configuration({
  imports: [
    // 模板渲染 http://midwayjs.org/docs/extensions/render
    view,
    // 静态文件托管 http://midwayjs.org/docs/extensions/static_file
    staticFile,
  ]
})

#2、打开与src同级的view,新建前端托管专用文件夹frontEnd,放前端打包后的代码用 image.png

#3、config.default.ts配置view和staticFile

export default {
  // 模板渲染
  view: {
    defaultViewEngine: 'ejs',
    mapping: {
      '.html''ejs',
    },
  },
//静态托管文件夹
  staticFile: {
    dirs: {
      default: {
        prefix: '/index',
        dir: 'view/frontEnd',
      }
    },
  },
  },  
} as
  | MidwayConfig
  | {
      cache: any;
    };

#4、与configuration.ts同级目录的index.js中修改

import { Controller, Get, Inject } from '@midwayjs/decorator';
import { Context } from '@midwayjs/koa';

/**
 * 登录界面
 */
@Controller('/')
export class IndexController {
  @Inject()
  ctx: Context;
  // 模板渲染路径
  @Get('/')
  @Get('/*')
  async index(): Promise<string> {
    return this.ctx.render('frontEnd/index.html');
  }
}

#5、前端代码中对应修改vite.config.ts、vue-router配置

##vite.config.ts中base的修改

export default async ({ mode }): Promise<UserConfig> => {
// dev开发环境base为'/',/index/为打包时候用,如果是用webpack,也一样修改对应的baseUrl即可
// 是否开发环境
const isdev = mode == "development";
//是否静态拖管到后端
const isBackEndStatic=true
// 根据是否为开发环境和后端服务器托管定义baseUrl
const baseUrl = isdev ? "/" : isBackEndStatic ? "/index/" : "/";
return {
  base: ‘baseUrl,
  },
})

vue-route中router配置修改base

// 路由
//是否静态拖管到后端
const isBackEndStatic=true
router: {
// 是否静态托管,对应托管路径
base: isBackEndStatic ? "/index/" : "/",
// 模式
mode: "history",
},

#6、前端代码运行npm run build;打包完成后,复制dist文件夹中的全部文件到第2步在后端view文件夹中建好的frontEnd文件夹内,然后部署后端,部署完成后,打开后端网址即可访问网站

分类:

后端

标签:

后端

作者介绍

f
fatelyh
V1