chore: 完成v1.2版本迭代与代码清理
本次提交完成了多项清理与规范工作: 1. 移除默认管理员硬编码配置与云同步相关代码 2. 简化前端与MAUI端的配置,关闭静态资源托管以外的冗余功能 3. 清理.gitignore与协调目录,移除临时文件与冗余规则 4. 统一项目命名规范,修正包名与版本号 5. 重构后端数据模型,移除ABP审计字段与云同步相关逻辑 6. 简化WebView配置与系统栏样式,移除不必要的平台检测代码 7. 更新文档与规则文件,完善项目规范与版本记录
This commit is contained in:
@@ -7,9 +7,7 @@ using Microsoft.Extensions.FileProviders;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using System.Text.Json;
|
||||
using Hua.Todo.Application;
|
||||
using Hua.Todo.Application.CloudSync;
|
||||
using Hua.Todo.Application.DynamicApi;
|
||||
using Hua.Todo.Application.DynamicApi.Swagger;
|
||||
using Hua.Todo.Maui.Models;
|
||||
using AppSettings = Hua.Todo.Maui.Models.AppSettings;
|
||||
|
||||
@@ -67,23 +65,10 @@ public class EmbeddedWebServerService : IEmbeddedWebServerService
|
||||
});
|
||||
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
#if DEBUG
|
||||
builder.Services.AddSwaggerGen(options =>
|
||||
{
|
||||
options.DocumentFilter<DynamicApiSwaggerDocumentFilter>();
|
||||
});
|
||||
#endif
|
||||
|
||||
// 注册应用逻辑服务
|
||||
builder.Services.AddApplicationServices(_appSettings.WebServer.ConnectionString);
|
||||
|
||||
// 注册云同步反向代理(URL 管理 + 转发用 HttpClient)
|
||||
builder.Services.AddCloudSyncProxy();
|
||||
|
||||
// 注册 URL 持久化
|
||||
builder.Services.AddSingleton(new CloudSyncProxySettingsPersistence(
|
||||
Path.Combine(AppContext.BaseDirectory, "appsettings.json")));
|
||||
|
||||
// 配置跨域策略
|
||||
builder.Services.AddCors(options =>
|
||||
{
|
||||
@@ -97,18 +82,6 @@ public class EmbeddedWebServerService : IEmbeddedWebServerService
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// 从 appsettings 初始化 CloudSyncUrl
|
||||
var proxySettings = app.Services.GetRequiredService<CloudSyncProxySettings>();
|
||||
if (!string.IsNullOrEmpty(_appSettings.WebServer.CloudSyncUrl))
|
||||
{
|
||||
proxySettings.SetUrl(_appSettings.WebServer.CloudSyncUrl);
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
app.UseSwagger();
|
||||
app.UseSwaggerUI();
|
||||
#endif
|
||||
|
||||
// 如果配置为使用静态文件(前端托管),则配置静态文件服务
|
||||
if (_appSettings.WebServer.IsUsingStatic)
|
||||
{
|
||||
@@ -116,11 +89,9 @@ public class EmbeddedWebServerService : IEmbeddedWebServerService
|
||||
}
|
||||
|
||||
app.UseCors("AllowAll");
|
||||
app.UseCloudSyncProxy(); // 云同步反向代理(在授权之前,由远程 Host 做鉴权)
|
||||
app.UseAuthorization();
|
||||
app.UseDynamicApi();
|
||||
app.MapControllers();
|
||||
app.MapCloudSyncProxySettings(); // GET/POST /api/cloud-sync/settings
|
||||
|
||||
_webApp = app;
|
||||
|
||||
@@ -164,18 +135,7 @@ public class EmbeddedWebServerService : IEmbeddedWebServerService
|
||||
if (context.Request.Path.HasValue)
|
||||
{
|
||||
var path = context.Request.Path.Value;
|
||||
|
||||
// Swagger 仅在 DEBUG 下启用;Release 下不应把 /swagger 当作“后端专用路径”排除,
|
||||
// 否则访问 /swagger 会直接 404 而不会回落到 SPA(/index.html)。
|
||||
#if DEBUG
|
||||
var isSwaggerPath = path.StartsWith("/swagger", StringComparison.OrdinalIgnoreCase);
|
||||
#else
|
||||
var isSwaggerPath = false;
|
||||
#endif
|
||||
if (path != "/"
|
||||
&& !path.StartsWith("/assets", StringComparison.OrdinalIgnoreCase)
|
||||
&& !path.StartsWith("/api", StringComparison.OrdinalIgnoreCase)
|
||||
&& !isSwaggerPath)
|
||||
if (path != "/" && !path.StartsWith("/assets", StringComparison.OrdinalIgnoreCase) && !path.StartsWith("/api", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
var ext = Path.GetExtension(path);
|
||||
if (string.IsNullOrEmpty(ext))
|
||||
|
||||
Reference in New Issue
Block a user