wangzhibo
2026-05-09 53418655c061ac26f66058253f39200aced1ab1d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
namespace BoardApp.Services;
 
public static class BoardUrlResolver
{
    public static string ResolveBoardUrl(string? dataEasePublicBase, string boardUrl)
    {
        var raw = (boardUrl ?? "").Trim();
        if (raw.Length == 0) return raw;
        if (raw.StartsWith("http://", StringComparison.OrdinalIgnoreCase) ||
            raw.StartsWith("https://", StringComparison.OrdinalIgnoreCase))
        {
            return raw;
        }
 
        var baseUrl = (dataEasePublicBase ?? "").Trim().TrimEnd('/');
        if (baseUrl.Length == 0)
        {
            throw new InvalidOperationException("app.config.json 中 dataEasePublicBase 未配置,无法解析相对 boardUrl");
        }
 
        var path = raw.StartsWith("/") ? raw : "/" + raw;
        return $"{baseUrl}/#{path}";
    }
}