- 将单元测试框架更换为
xUnit或nUnit,当前测试的多DataRow用法无法更新到MSTest的4.x.x版本 - 将CORS配置项移到配置文件中
- 考虑修改更好看的语法后,启用“模板”语法
- 替换掉”颜色字/块“、”边框“等丑陋的语法
本项目是一套基于asp.netCore和vue3和内容管理系统,其主要功能介于博客/维基/贴吧之间
- 用户可在线编辑文本内容(称为词条)、上传图片等文件。词条支持markdown语法,可插入图片或表格。
- 词条中的表格可选择上传xlsx文件,或通过内置的表格编辑器编辑。
- 词条可以自动生成提到的其他词条的链接。
- 词条内容的变动均有操作记录,可查看每次编辑新增/删去的文字部分。
- 可通过目录系统分门别类整理词条和文件,目录可多层嵌套。
- 作者可自由控制允许编辑的范围,允许或拒绝用户/用户组编辑自己的全部或单个词条/目录,实现互不干扰的团体协作。
- 首页可显示最新更新词条,词条下方有评论区,可成为互动性强的社交平台。
- 可部署在windows或linux(docker)
- 构建docker镜像无需梯子
查看主要使用案例:
http://wiki.jowei19.com
- 后端基于asp.netCore
- ORM使用EntityFramework,支持sqlite和sqlserver
- 前端使用vue3+ts+vite
- 身份验证使用JWT
- 图像处理使用ImageSharp
- excel和word文件导入导出使用NPOI
- 资源文件可选择存储在自己的服务器或阿里云OSS
- Visual Studio 尽可能新版 + web应用开发负载
- node客户端 尽可能新版,并确认命令行中有npm命令可用
- git客户端 用来下载代码和记录改动
- (可选)visual studio code用来编辑前端代码
- 关于网页应用的基本常识
- 对
IIS(Windows)或docker+nginx或apache(Linux)基本用法的理解,知道怎么把域名指向服务器上特定服务 - 一台有公网ip的服务器,一个域名
注意:visual studio和node客户端是装在自己电脑上的,除非你的服务器特别强,否则请不要往服务器上装
- 在命令行中输入
git clone 【本仓库链接】 - 进入前端文件夹(/FCloud3.AppFront/FCloud3Front),在命令行中输入
如果需要调试前端项目,见前端文件夹内的Readme文件
npm config set registry https://registry.npmmirror.com(设置npm国内镜像) npm ci npm run build - 双击项目根目录的sln文件,进入
Visual Studio - 按appsettings.json中的注释调整配置文件
- (如果需要)更改数据库连接字符串,不作配置默认使用sqlite
- (如果需要)阿里云OSS账号密码,不作配置默认使用服务器本地文件存储(Data/FileStorage文件夹)
- 必须更改总密码(MasterAdminCode)
- 必须更改jwt密钥(Jwt:SecretKey)
- 点击
Visual Studio顶部绿色启动按钮启动调试,检查是否正常 - 在浏览器地址栏访问
调试域名/init/<配置文件内的总密码>/initDb以初始化数据库- 有点蠢...如果不是自己的电脑,记得删除浏览器历史记录,密码会留在里面
- 准备服务器环境
- windows服务器:安装.net9.0 hosting bundle (9.0内尽可能新版)
- 在IIS中新建站点,并指向程序目录
- 为程序目录添加Users用户组完全控制授权(或者折腾iis权限,让程序能读写当前目录就行)
- linux服务器:安装
docker和nginx或apache(之类的反向代理)- 在
nginx或apache新建站点,并指向33442/33443端口
- 在
- windows服务器:安装.net9.0 hosting bundle (9.0内尽可能新版)
- 停止调试,导出程序文件
- windows服务器:找到
Visual Studio右侧解决方案管理器最底部的9.App/FCloud3.App并右键点击它,点击弹出菜单的发布(B)即可选择位置导出,将导出的程序文件移动到服务器上(建议使用webDeploy,也可以直接远程桌面粘贴过去) - linux服务器:使用
docker build . -t fcloud3命令取用项目根目录的Dockerfile构建本项目镜像- 注:使用的镜像源均无需梯子可直连
- windows服务器:找到
- 尝试启动并进入网站
- windows服务器:点击IIS中的站点启动按钮
- linux服务器:使用
docker run -d -v fcloud3data:/app/Data -p 33442:8080 -p 33443:8081 fcloud3命令,-v fcloud3data:/app/Data将会把/app/Data数据持久化保存在名为fcloud3data的volumn内。-p 33442:8080将会把容器内的8080端口映射到宿主机的33442端口- 如果容器启动后立刻自己关了,检查json配置文件的json语法是否有误
- 在浏览器地址栏访问
域名/init/<配置文件内的总密码>/initDb以初始化数据库(即使调试时做过,这时也必须做) - 在浏览器地址栏访问
域名/init/<配置文件内的总密码>/initUser以注册初始用户- 用户名为
admin - 密码为
fcloud987123 - 权限为超级管理员
- 立即登录和修改密码,不要保留原始密码
- 用户名为
- 命令行启动时,请确保命令行工作目录(pwd)和程序文件目录(exe所在的目录)一致,否则可能会出现各种问题
- 部署或使用遇到问题欢迎提出issue或者PR
- 需要帮助请加qq群:798877093
robots.txt位于/FCloud3.AppFront/FCloud3Front/public中,默认情况下不允许任何爬虫,请按需自行修改
- 只能单实例部署(内部的“编辑互斥锁”为sqlite实现,不能跨实例互斥)
- 没有代码生成器和布局设计器,二次开发较为麻烦
- 词条内容为动态加载,无法被搜索引擎抓取(完全没有SEO)
- 我父母和网友璃夜:帮我渡过困难时期
- 我父亲:给我提供了服务器和域名
- 微软:免费给我使用vs,vsc和.net工具链
- typeScript(也是微软家的):使我脱离js弱类型苦海
- 尤雨溪等:vue YYDS
- 旋头,滨蜀:积极提供和传达了大量建议
- 我的用户们:鼓励我持续精进技艺
高性能、MIT开源、跨平台:.net
web开发必会前端框架:vue3
Apache-2.0