🐛 Bug fixes in the publication site hosting

This commit is contained in:
2025-11-21 23:36:38 +08:00
parent 98b8d5f33b
commit 70a18b07ff
3 changed files with 8 additions and 3 deletions

View File

@@ -12,7 +12,7 @@
<p>Something went wrong...</p> <p>Something went wrong...</p>
<p class="text-sm opacity-80 mt-1">Powered by the Solar Network Pages</p> <p class="text-sm opacity-80 mt-1">Powered by the Solar Network Pages</p>
<div class="text-xs opacity-70 mt-1"> <div class="text-xs opacity-70 mt-1">
<p>Path: <b>@Model.CurrentPath</b></p> <p>Path: <b>@(Model.OriginalPath ?? Model.CurrentPath)</b></p>
<p>Site ID: <b>@(Model.Site?.Id.ToString() ?? "none")</b></p> <p>Site ID: <b>@(Model.Site?.Id.ToString() ?? "none")</b></p>
@if (Model.ShowRequestId) @if (Model.ShowRequestId)
{ {

View File

@@ -3,6 +3,7 @@ using DysonNetwork.Shared.Models;
using DysonNetwork.Zone.Publication; using DysonNetwork.Zone.Publication;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Diagnostics;
namespace DysonNetwork.Zone.Pages; namespace DysonNetwork.Zone.Pages;
@@ -19,6 +20,7 @@ public class ErrorModel : PageModel
public SnPublicationSite? Site { get; set; } public SnPublicationSite? Site { get; set; }
public string? SiteName { get; set; } public string? SiteName { get; set; }
public string? CurrentPath { get; set; } public string? CurrentPath { get; set; }
public string? OriginalPath { get; set; }
public void OnGet() public void OnGet()
{ {
@@ -29,5 +31,8 @@ public class ErrorModel : PageModel
SiteName = Request.Headers["X-SiteName"].ToString(); SiteName = Request.Headers["X-SiteName"].ToString();
CurrentPath = Request.Path; CurrentPath = Request.Path;
var statusCodeReExecuteFeature = HttpContext.Features.Get<IStatusCodeReExecuteFeature>();
OriginalPath = statusCodeReExecuteFeature?.OriginalPath;
} }
} }

View File

@@ -21,7 +21,7 @@ public class PublicationSiteMiddleware(RequestDelegate next)
} }
var site = await db.PublicationSites var site = await db.PublicationSites
.FirstOrDefaultAsync(s => EF.Functions.ILike(s.Name, siteNameValue)); .FirstOrDefaultAsync(s => EF.Functions.ILike(s.Slug, siteNameValue));
if (site == null) if (site == null)
{ {
await next(context); await next(context);
@@ -42,7 +42,7 @@ public class PublicationSiteMiddleware(RequestDelegate next)
await context.Response.WriteAsync(content.ToString()); await context.Response.WriteAsync(content.ToString());
return; return;
case PublicationPageType.Redirect case PublicationPageType.Redirect
when page.Config.TryGetValue("url", out var url) && url is JsonElement redirectUrl: when page.Config.TryGetValue("target", out var tgt) && tgt is JsonElement redirectUrl:
context.Response.Redirect(redirectUrl.ToString()); context.Response.Redirect(redirectUrl.ToString());
return; return;
} }