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

3be4dd74743a3ee165750527be1693ee.png

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

书接上文《【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接口设置为后端接口绝对路径就行:

77dea7e304deadb182f250e7d1069e65.png

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

482d9785d4901189fab44ce7f9804e84.png

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

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

1cfad1ce292e37a1986501227477c9b1.png

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

02

PART

修改后端,读取静态文件

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

e7feee19306a8cb1662a9fe6dd011ffa.png

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

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

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

b3510354270a78fccd26599ba246ae79.gif

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

这样把前端打包好的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的服务配置中,引用一下就好,后端最终修改是这么多:

bc47733cddd93155587d6085aa9a72b0.png

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视图添加字段_Odoo开发教程2-为模型添加字段

开启开发者模式后&#xff0c;我们可通过菜单 Settings > Technical > Database Structure > Models来查看模型的定义。这时搜索 res.partner(未安装其它应用的情况下第一个即是)&#xff0c;对应的模型描述为 Contact。点击打开表单视图&#xff0c;这时就可以看到 p…

linux之通过htop操作进程使用总结

1、htop介绍 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器,htop比top更加人性化,有具体界面可以操作,读者可以先使用top看下效果,然后再安装htop. 2、安装htop 输入下面命令 sudo apt-get install htop 3、效…

6大奖项!首届 .NET 黑客松大赛圆满收官!

.NET Conf China 2021 是面向开发人员的社区峰会&#xff0c;基于 .NET Conf 2021&#xff0c;庆祝 .NET 6 的发布和回顾过去一年来 .NET 在中国的发展。峰会由来自北京、上海、苏州、深圳、武汉、广州、青岛、烟台、杭州等各地区的 .NET 技术社区共同发起举办&#xff0c;由微…

看完这套书才发现,以前的四大名著都白看了!

▲ 点击查看四大名著是我国最经典的古典文学作品&#xff0c;代表着传统文化在小说创作方面的最高成就。同时&#xff0c;也是必学书、必读书、必考书。从小了说&#xff0c;在语文学习上&#xff0c;全国统一的语文教材里&#xff0c;五年级下册已出现了四大名著的章节。作为整…

在Windows Live Writer中插入C# code

平时都是用Windows Live Writer写博客&#xff0c;发布博客。遇到需要插入代码都是先在notepad中写好&#xff0c;或者是拷贝到notepad&#xff0c;再从notepad中拷到Windows Live Writer&#xff0c;比较麻烦。在博客中使用插件Code Snippet就能很好解决这个问题。 下载地址&a…

linux之vifm和ranger操作文件管理器使用总结

1、介绍vifm和ranger vifm和ranger都是有图形的文件管理操作,有点类是windows上面的“我的电脑” 2、安装vifm和ranger 在终端输入下面命令 sudo apt-get install vifmsudo apt-ger install ranger 3、常规使用vifm 安装成功之后,我们在控制台输入vifm命令,然后显示下面…

.NET 运行时设置

.NET 运行时设置.NET 5&#xff08;包括 .NET Core 版本&#xff09;支持使用配置文件和环境变量在运行时配置 .NET 应用程序的行为。如果出现以下情况&#xff0c;则运行时配置是一个不错的选择&#xff1a;你不拥有或控制应用程序的源代码&#xff0c;因此无法以编程方式对其…

ElasticSearch——学习笔记

2019独角兽企业重金招聘Python工程师标准>>> Relational DB -> Databases -> Tables -> Rows -> Columns Elasticsearch -> Indices -> Types -> Documents -> Fields 转载于:https://my.oschina.net/u/2307114/blog/799905

linux之用wget下sublime简单使用总结

1、简单介绍wget 1&#xff09;、wget命令在linux系统上面主要通过url下载&#xff0c; wget url 2&#xff09;、比如我们需要断点续传我们加上参数 -c wget -c url 2、下载sublime 1&#xff09;电脑32位 wget http://c758482.r82.cf2.rackcdn.com/Sublime\ Text\ 2.0.2.tar.…

C# dynamic 类型用法举例

dynamic类型允许编写忽略编译期间的类型检查的代码。编译器假定&#xff0c;给dynamic类型的对象定义的任操作都是有效的。如果该操作无效&#xff0c;则在代码运行之前不会检测该错误&#xff0c;如下面的示例所示:这个示例没有编译&#xff0c;因为它调用了staticPerson.GetF…

在微信小程序中绘制图表(part2)

本期大纲 1、确定纵坐标的范围并绘制 2、根据真实数据绘制折线 相关阅读&#xff1a;在微信小程序中绘制图表&#xff08;part1&#xff09;在微信小程序中绘制图表&#xff08;part3&#xff09; 关注我的 github 项目 查看完整代码。 确定纵坐标的范围并绘制 为了避免纵坐标的…

Windows 8.1 新增控件之 CommandBar

上一篇为大家介绍了AppBar 的相关内容&#xff0c;本篇继续介绍CommandBar 的使用方法。与AppBar 相比而言&#xff0c;CommandBar 在开发使用方面较为单一&#xff0c;在按键布局上分为主控区&#xff08;Primary Commands&#xff09;与辅控区&#xff08;Secondary Commands…

很抱歉,你不涨工资,正是因为你“太努力”!

太多人干了一辈子工作却还在原地踏步太多人在公司里任劳任怨最终还一事无成你或许欠缺的不是努力而是思维聪明的人都会投资自己想办法让自己变得无可替代这样老板离不开你的那一天就是你升职加薪的时候快来和我一起看看哪些公众号都能帮你提高能力呢&#xff1f;募格课堂ID&…

php文件锁解锁是删除对应的文件_软件 | 文件解锁强制删除工具 Wise Force Deleter v1.49...

有过电脑里面想删除一个文件&#xff0c;死活删除不了的痛苦吗&#xff1f;用尽了各种办法&#xff0c;关闭进程&#xff0c;删除关联文件&#xff0c;卸载对应的程序&#xff0c;然而还是无法删除&#xff0c;甚至都进入了安全模式删除&#xff0c;依然文件纹丝不动&#xff0…

.NET 7 预览版来啦,我升级体验了

听说.NET 7 来了&#xff0c;站长怎能不尝鲜呢&#xff0c;在除夕当天将体验情况简单汇报下&#xff0c;然后迎新春喽&#xff1a;本文目录.NET 7 详情&#xff08;Proposed .NET 7 Breaking Changes #7131&#xff09;.NET 7 SDK下载尝鲜体验3.1 安装.NET 7 SDK3.2 Hello Word…

【emWin】例程六:设置颜色

实验指导书及代码包下载&#xff1a; 链接&#xff1a;http://pan.baidu.com/s/1kVr25vT 密码&#xff1a;xbkj 实验现象&#xff1a;

渣男劈腿,两个女生却逼他做出选择,结果......

1 生一个女儿有多重要&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼2 真实版眼睛瞪得像铜铃&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 地表最强撞衫&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 过年时最怕遇见的人&#xff08;素材…