简介
Rscms内容管理系统,使用AI生成创意文档,图片,视频;
一键发布内容到各大平台:小红书,今日头条,微信公众号,抖音
一秒完成上线
AI生成创意图片与文案 使用AI生成产品文案,公司文案,文章翻译
多语种支持
同时匹配pc端和手机端,微信公众号
支持使用md文件做为数据源
支持多种数据库 sqlite mysql sqlserver oracle
内置md编辑器编辑内容
下载
部署
部署步骤
1.windows系统
上部署
1.1 如果使用sqlite做为数据库,在windows系统
双击RsCms.WebApi.exe
即运行RsCms系统
1.2 使用其它数据库,支持的数据库有:mysql
,sqlserver
,sqlite
默认使用Sqlite数据库,数据为名称为rscms.db
如果使用其它数据库,可编辑appsettings.json
文件,修改节点Database
变更数据库类型,需要手动创建名称rscms
的数据库
2.linux系统
上部署 非windows平台可下载相应压缩包,配置后运行
上传
上传文件接口为api/storage/local
上传的文件保存在wwwroot
目录下 public
文件夹中
打开网站
浏览器访问https://localhost:6688
访问主页 浏览器访问https://localhost:6688/rscms/index.html
后台管理
插件
RsCMS提供了几个常用的插件Plugin.RsCms
cms系统管理插件Plugin.User
用户管理插件Plugin.Upload
上传插件Plugin.Distrubtion
分销插件
ui开发
支持的UI框架ASP.NET Core Blazor,ASP.NET Core Razor Pages ,ASP.NET Core MVC,详情可以参考官方文档。
通过visual studio2022
创建asp.net core web
项目,修改项目输出类型为类库
,开始编写UI,你只需要懂html,css,js和循环,条件判断这些知识即可进行开发
类库编译后替换项目同名文件即可生效
Razor Pages
Razor Pages项目
目录结构
.
├── Pages # 视图目录
│ └── Shared # 共享的页面存放位置
│ └── _Layout.cshtml #布局页
│ └── Page1.cshtml # 页面
│ └── _ViewImports.cshtml # 项目命名空间
│ └── _ViewStart.cshtml # 起始页
├── Models # 常用业务实体
├── i18n # 国际化
Razor视图
Razor页面:文件名以.cshtml结尾
页面(带@page
)和组件(不带@page
),两者区别在于页面有路由,可以直接通过 URI 访问,一般放在 Pages 文件夹中;而组件,作为一个部件,必须嵌入其它组件中,在页面中显示,一般放到 Shared 文件夹中,供多个页面共享、复用。 可通过url访问的页面文件放到Pages文件夹中,可共享,复用的放到Shared文件夹中
视图优先级
/Pages/Header.cshtml
/Pages/Shared/Header.cshtml
/Views/Shared/Header.cshtml
page指令用来自定义路由,网页的url由它来定义,用方如下
@page "/" //通过 http://xx.com/访问
@page "/products/{id}" //通过 http://xx.com/products/xx 访问
@page "/products/{id:int}/{category?}" //通过 http://xx.com/products/123/abc 访问 这里的问号表示该参数可以为空
@{
//实例:获取路由参数
@page "/news/{page?}"
var pageParam = RouteData.Values["page"] as string; //无page时,pageParam="/News"
int page = pageParam == "/News" ? 1 : Convert.ToInt32(pageParam);
//实例:获取请求参数
var culture=Request.Query["culture"].ToString();
}
当html代码中己使用了@
符号,在Razor中可以用@@
代替
子页面
页面可重用的部分,放在Shared文件夹中
父页面调用子页面的方式
@{
await Html.RenderPartialAsync("childPage");
}
_ViewImports.cshtml
项目命名空间
@using Microsoft.AspNetCore.Mvc.Localization
@using RsCms.UI
@namespace RsCms.UI.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@inject IViewLocalizer L
_ViewStart.cshtml
起始页
@{
Layout = "_Layout"; // 引用布局页 布局文件真实文件位置 Pages/Shared/_Layout.cshtml
}
页面逻辑
//获取路由参数
var id=Model.RouteData.Values["id"]
//逻辑判断
@if(true)
{
html代码
}
//偱环
@for(var i=0;i<10;i++)
{
}
//遍历
@foreach(var item in DemoModel)
{
}
//方法
@functions{
//这里写c#代码
}
//页面重复的部分可以使用组件代替,创建Razor组件以_开头的命令的razor类型文件
创建到Shared文件夹
//页面之间传参
//添加母版页没有的js代码
@section js{
<script></script>
}
//添加母版页没有的css代码
@section css{
<style></style>
}
国际化
RsCms.UI
项目i18n文件夹
下创建多语言,
@L["home"] //视图页这样调用 home是json文件中定义的key名称
资源名称 | 圆点或路径命名 |
---|---|
Pages.Index.en-US.json | 点 |
Pages/Index/en-US.json | 路径 |
是选择使用圆点还是路径命名约定,具体取决于你想如何组织资源文件。
处理HTTP方法
Models文件夹中ApiHelper
定义了CMS常用功能
//获取导航信息
Task<SiteNavigateModel[]> GetNavigateAsync();
//获取站点信息
Task<SiteInfoModel>GetSiteInfoAsync();
//获取文章信息
Task<ArticleModel> GetArticleAsync(string id);
//按短语获取文章信息
Task<ArticleModel> GetArticleBySlugAsync(string slug);
//分页查指定tag下的文章
Task<PageData<ArticleItemModel>> PageArticleByTagAsync(int page,int pageSize,string tag);
//查询指定组的设置信息
Task<SettingsDto[]> GetSettingsListAsync (string groupName);
AI
AI需要申请Token后,才能使用,步骤如下: 访问 https://localhost:6688/rscms/index.html
点击--设置--Token设置-->申请Token
关于作者
微信: runsoft1024