( 半盏屠苏犹未举,灯前小草写桃符 )

书接上文《【Blog.Core开源】开发插件,给Swagger加权》,在上篇文章中,我们给项目的接口文档增加了一个控制界面,可以输入用户名密码,这样也算是简单的一个加密控制了,当然也可以使用Nginx的加权功能,具体写法大家搜索下就知道了,这里按下不表。

本文故事背景

花开两朵,各表一枝。今天忙中偷闲,看了看Github上的Issue,都已经四个了,该解决解决了,找了一个单元测试的Bug,简单解决了一下。本着负责的态度,还是要好好测试一下,打开前端项目,npm run serve启动下服务,然后配置下后端接口,点点,没问题,关掉项目,开始提交等等。

突然想到,我可以直接把Vue的项目发布好后,放到Blog.Core后端的wwwroot里,作为静态资源文件来访问,这样每次后端修改完成以后,就不用再打开前端了,比如这样同一个站点:

Blog.Core的Swagger接口文档:
http://localhost:9291/Blog.Admin的Vue界面展示效果:
http://localhost:9291/ui/

这样就很方便了,说来就来,简单修改下,便满足了,直接上代码。

01

PART

打包Vue前端

作为经常开发Vue的小伙伴肯定很熟悉,前后端比较有关联的地方,无非就那么几个:

1、api的base接口;
// src\api\api.js2、打包的相对路径;
// src\router\index.js

因为是前后端一个域名,所以直接用把base接口设置为后端接口绝对路径就行:

然后给前端增加一个/ui/的路由前缀,所以输出也要改一下:

然后除了那两个修改以外,还有个需要修改的,就是路由模式,经过测试在netcore里静态资源访问Vue项目,如果Vue用history路由的方式话,刷新页面会出现404的问题,毕竟不是nginx,不能修改try_file,不过我再研究下,有更新会发公众号补充。

所以这里先把路由模式改为hash模式:

然后npm run build进行打包,万事俱备,再配置后端。

02

PART

修改后端,读取静态文件

后端就相对比较简单些,因为之前该配置的都已经配置好了,只需要将上文打包后文件,拷贝到wwwroot静态文件夹里就行,有一个简单修改的就是配置下默认的index.html作为首页:

// 使用静态文件DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();defaultFilesOptions.DefaultFileNames.Clear();defaultFilesOptions.DefaultFileNames.Add("index.html");app.UseDefaultFiles(defaultFilesOptions);app.UseStaticFiles();

记得要做一下gitignore哟,毕竟文件挺多的。

直接启动项目,浏览/ui/文件夹,就会看到效果了,动图展示下:

做到这里,其实我们的需求已经做完了,以后在不改变接口的情况下,可以直接预览效果,看看接口是否可以。但是却不是完美的,这里随便说一个问题,大家可以自己暂停思考下,看看和我想的是否一致。

这样把前端打包好的dist文件夹放到后端项目,会不会文件又多占地方,又不好看?

如何改进一下呢?

03

PART

其他静态文件优化

如果你之前看过我讲过微软的那个微服务架构eShopOnContainer的话,应该知道,它里边就有一个处理的方案,就是zip压缩包。

所以我也有压缩包的形式,放到wwwroot里,然后在项目启动的时候,把压缩包解压到wwwroot的ui文件夹即可。

/// <summary>/// 将前端UI压缩文件进行解压/// </summary>public static class UiFilesZipSetup{public static void AddUiFilesZipSetup(this IServiceCollection services, IWebHostEnvironment _env){if (services == null) throw new ArgumentNullException(nameof(services));string zipUiItemFiles = Path.Combine(_env.ContentRootPath, "wwwroot", "ui.zip");ZipFile.ExtractToDirectory(zipUiItemFiles, Path.Combine(_env.ContentRootPath, "wwwroot"));}}

然后在startup的服务配置中,引用一下就好,后端最终修改是这么多:

好啦,今天的优化就这么多了,开发还是要尽量做到力所能及:

比如单元测试,比如静态文件修改,比如zip压缩。

希望能给小伙伴一些灵感吧!

最后祝大家马上到来的除夕愉快!

【Blog.Core开源】快速预览Admin界面效果相关推荐

  1. Flutter教程(1)——快速预览

    简介 Flutter 是 Google 用以帮助开发者在 iOS 和 Android 两个平台开发高质量原生 UI 的移动 SDK.只需要维护一套代码就能在ios和Android中构建漂亮的App应用 ...

  2. 文献管理软件//Zotero的常用插件——Sci-hub/shortdoi批量下载、Zotfile重命名PDF文件及ZoteroQuickLook快速预览(二)

    Zotero|方便好用的插件 一. Zotfile|文件重命名 1.1 Zotfile下载 1.2 Zotfile安装 1.3 Zotfile配置 1.4 Zotfile重命名文件 二. QuickL ...

  3. BetterZip中的「Quick Look」是怎么进行快速预览的

    macOS 上有一个「Quick Look」功能,在文件或者文件夹上按下空格键,就可以进行快速预览. 这个功能在BetterZip中也可以体验到,而且被使用的相当广泛.在这个功能中我们可以快速预览图像 ...

  4. 一个Django快速预览项目

    创建一个Django项目,会用到一些包,但是下载多了会导致电脑变卡.变慢,这个时候可以用到虚拟环境来解决这个问题,每写一个项目,便可以在虚拟环境内配置各种环境而不影响电脑本身的环境. 我是用的是win ...

  5. quicklook不能预览office_万物皆可格!给空格键施加神奇魔法的神器软件—快速预览工具QuicklookPC软件...

    大家好,我是元力.今天给大家带来一款电脑端使用的超级神奇的软件.只需要选中文件,然后点击空格键,即可预览文件. 支持大部分格式,比如word.excel.pdf.图片.视频甚至图片的源文件等等.真正实 ...

  6. 【Blog.Core开源】框架集成部门权限

    (Blog.Core框架功能点概述) Blog.Core开源四年啦,一行行代码凝结了大家的热情和心血,基本功能骨架已完成,欢迎更多的公司和企业使用哟.真实公司留言盖楼可获得一对一技术指导: https ...

  7. 【Blog.Core开源】网关自定义认证鉴权与传参

    书接上文,上回咱们说到了<[Blog.Core开源]网关统一集成下游服务文档>,已经将多个下游服务统一集成到了网关里,并且也把接口文档Swagger给集成了,那今天就说一下认证和鉴权相关的 ...

  8. 微软.Net Core 3.0 预览版7发布:大幅减少 SDK 空间大小

    据悉,这个预览版是 .Net Core 3 中重要的版本,可以视为原计划在 7 月发布的 RC 版本 (引自微软 .NET Core 首席 Program Manager Richard 先生原话), ...

  9. Webappbuilder开发快速预览

    Webappbuilder开发快速预览 by 李远祥 Webappbuilder for ArcGIS 是由ArcGIS JavaScripit API和dojo创建的,它允许通过创建自己的widge ...

最新文章

  1. ByteBuf和相关辅助类
  2. java求100以内的a2 b2=c2,Java语言程序设计Ⅱ-中国大学mooc-试题题目及答案
  3. shell编程-分支语句
  4. 设计模式:原型模式(C++)【克隆羊多莉】
  5. Flask开发微电影网站(十)
  6. Redies(一款高性能的数据库)
  7. java性能调优寻找瓶颈常用的命令_Java性能调优:利用VisualVM进行性能分析
  8. win10专业版与家庭版有什么不一样
  9. python写入txt不覆盖_python不能覆盖文件内容如何解决
  10. php三级分销思路 数据库设计_三级分销,
  11. 逐点插入法-delaunay三角剖分
  12. 牛客华为机试-查找排序
  13. html5---拖放demo----拖放图片
  14. 风场可视化:绘制粒子
  15. 面向对象编程及其三大特征(JAVA)
  16. Redis启动和停止(Ubuntu)
  17. 7-1 ATM机类结构设计(二) (100 分)
  18. 第40节 指北针实例
  19. 随机过程在计算机领域的应用,清华大学出版社-图书详情-《随机过程及其在金融领域中的应用(第2版)》...
  20. Redis-03-基本命令

热门文章

  1. 完美完全卸载Oracle 11g数据库
  2. pom.xml配置详解
  3. Oracle 内核参数
  4. JS实现sleep功能 JS遍历document对象
  5. 关于Linux fontconfig 字体库的坑
  6. [BZOJ4182]Shopping
  7. IBM X System ServerGuide 8.41 服务器 系统安装 引导盘
  8. 数据结构(java语言描述)顺序栈的使用
  9. ExtJs 4.x Ajax简单封装
  10. 求指教、。。。关于调用so文件