如何为在线客服系统的 Web Api 后台主程序添加 Bootstrap 启动页面
背景
我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统。这个系统的核心后台主程序,在最早期是完全没有页面,经常有朋友部署之后,一访问是 404,以为没有部署成功。我一看这肯定不行啊,可后台主程序是一个 Web Api 项目,没有页面,怎么办呢?
1.x 的实现方式
通过 Web Api 接口,直接返回字符串
于是我通过 Web Api 接口,输出一些基本的状态信息,如下:
namespace Sheng.Linkup.Server.Controllers
{
[ApiController]
public class StatusController : ControllerBase
{
[HttpGet]
public string Get()
{
//在此输出基本状态信息
string msg = "升讯威在线客服与营销系统 (私有化部署版)";
msg += "https://kf.shengxunwei.com";
return msg;
}
}
}

这种方式好歹解决了有和无的问题,一直坚持使用了很久。直到最近,因为一个客户的定制化需求,需要为主程序加入一特殊的状态页面和运维功能。
2.x 的实现方式
引入 Bootstrap 相关包,添加美观的,可交互的启动页面
先看看效果,是不是比 1.x 的效果好太多了呢。虽然是一个 Web Api 项目,但是也可以提供美观的页面。

实现方式
要在 Web Api 中添加页面,首先我们在 Bootstrip 的官网,下载它最新的开发包。然后将其添加到我们的项目文件中。
我们在项目根目录下,添加一个 html 文件夹,然后建立一个 Bootstrip 子文件夹,把官网下载到的文件全部放进去。

第二步我们在 Program.cs 中,引入新建的 wwwroot 目录,并开启它的静态文件访问功能。
String wwwrootFiles = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot");
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(wwwrootFiles),
RequestPath = "/"
});
最后,我们把开发好的状态显示页面,放在 html 文件夹中:

这里给出一个页面代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>客服系统状态</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
text-align: center;
}
h1 {
color: #333;
}
.status-box {
border: 1px solid #ccc;
border-radius: 5px;
padding: 20px;
width: 300px;
margin: 0 auto;
background-color: white;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
}
</style>
</head>
<body>
<h1>程序运行状态</h1>
<div class="status-box">
<p>当前状态:<span id="status-text">正在运行</span></p>
</div>
</body>
</html>
按下 Visual Studio 的启动项目按钮,就能看到我们的默认启动页面了。
整个过程可以说非常的简单和方便。这样,即使是 Web Api 项目,你也可以为用户提供非常清晰美观的状态显示页面了。
简介下这个 .net 开发的客服系统
100% 私有化部署在您的自有服务器,可全天候 7 × 24 小时挂机运行,不掉线不丢消息,欢迎实测。


希望能够打造: 开放、开源、共享。努力打造 .net 社区的一款优秀开源产品。
钟意的话请给个赞支持一下吧,谢谢~
如何为在线客服系统的 Web Api 后台主程序添加 Bootstrap 启动页面的更多相关文章
- 使用 WPF+ ASP.NET MVC 开发 在线客服系统 (一)
近段时间利用业余时间开发了一套在线客服系统,期间遇到过大大小小不少问题,好在都一一解决,最终效果也还可以,打算写一个系列的文章把开发过程详细的记录下来. 希望能够和更多的开发人员互相交流学习,也希望有 ...
- Vue在线客服系统【开源项目】
1. 项目介绍 一个基于Vue2.0的在线客服系统. 技术栈包含:Vue.VueX.Vue Router.Element UI. 2. 功能介绍 项目包含了2个模块:客服端和访客端. 2.1 客服端功 ...
- .net core 和 WPF 开发升讯威在线客服系统【私有化部署免费版】发布
希望 .net 和 WPF 技术时至今日,还能有一些存在感. 这个项目源于2015年前后,当时开发的初版,我使用了 ASP.NET MVC 做为后端,数据库使用原生 ADO.NET 进行操作.WPF ...
- CentOS 30分钟部署 .net core 在线客服系统
前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程.期间有一些朋友希望能够给出 Linux 环境的安装部署指导,本文基于 CentOS 8.3 来安装部署.在本文中我 ...
- Linux + .net core 开发升讯威在线客服系统:首个经过实际验证的高性能版本
业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程: .net core 和 WPF 开发升讯威在线客服系统:目录 https://blog.she ...
- 使用 WPF + Chrome 内核实现 在线客服系统 的复合客服端程序
本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 免费使用 & 私有化部署免费下载:https://docs.sh ...
- .net core 和 WPF 开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译
业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...
- .net core 和 WPF 开发升讯威在线客服系统:调用有道翻译接口实现实时自动翻译的方法
业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...
- Linux 运行升讯威在线客服系统:同时支持 SQL Server 和 MySQL 的实现方法
前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 有很多朋友一直提出希望能够支持 MySQL 数据库,考虑到已经有朋友在用 SQL Server,我在升级的过程中 ...
- 详解升讯威在线客服系统前端 JavaScript 脚本加密技术(1)
我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 这段时间有几个技术小伙伴问了我一个有意思的问题:"你的前端脚本是 ...
随机推荐
- MySQL事务理论及实现
理论大多引自<高性能MySQL>一书,不过在自测的过程中不知道是不是SQL版本的问题,还是操作有问题,在设置事务隔离级别的时候 按书上讲SET TRANSACTION ISOLATION ...
- 【ARMv8】异常级别的定义EL0、EL1、EL2、EL3
Exception levels ARMv8-A系列定义了一系列的异常等级,从EL0到EL3,下面具体说明其含义: ELn中,随着n的增加,软件的执行权限也相应的增加: EL0被称为无特权执行: EL ...
- 批量读取nii文件的shape
import SimpleITK as sitk from glob import glob import os path = glob(r"D:\MyData\date\*") ...
- 各位Oracle DBA们,你们期待的在线实训环境终于来了
各位Oracle DBA,你们是否曾在学习.工作时遇到不得不上正式库测试的情况,如果没事发生那一切岁月静好,但若一不小心删了用户.删了表甚至删了库,可就是悲剧了--从做出开库测试这个决定起,胆战心惊就 ...
- webpack中 loader和plugin的区别
首先 ,loader 是文件加载器,能够加载资源文件,并对文件进行一些处理,如翻译,压缩 ,最终一起打包到指定的文件中 :loader 运行在打包项目之前 : plugin 是插件 ,plugin赋予 ...
- HOW MANY OF THEM?(让人匪夷所思的一题)
题面 由n个节点构成的,割边数不超过m条的无向连通图个数(无自环和重边),答案对1e9+7取模. \[------------------------------------------- \] 真是 ...
- C#/.NET/.NET Core技术前沿周刊 | 第 10 期(2024年10.14-10.20)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...
- Mysql(1)—简介及Windows环境下载安装
Mysql(1)-简介及Windows环境下载安装 一.关于Mysql 1.1 简介 MySQL是一个流行的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)进行操作.MySQL由瑞典 ...
- DRF-Permission组件源码分析及改编源码
1. 权限组件源码分析 PS:下列源码为了方便理解都进行了简化,只保留了权限相关的代码 由于视图函数中继承了APIView,因此permission_classes可在视图类中进行重写. 注意点: 执 ...
- git安装-Tortoise git 安装汉化教程
1.首先下载 去官网下载 如果下载比较慢的,链接自取 https://pan.quark.cn/s/fcb9d0b39c7f 2. 安装git 3. 安装git图形化工具Tortoise git 4. ...