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}";
|
}
|
}
|
|