diff --git a/zero.Backoffice.UI/app/editor/fields/file.vue b/zero.Backoffice.UI/app/editor/fields/file.vue index a2e7bb1b..6f66f824 100644 --- a/zero.Backoffice.UI/app/editor/fields/file.vue +++ b/zero.Backoffice.UI/app/editor/fields/file.vue @@ -71,19 +71,25 @@ .ui-filelink { border-radius: var(--radius-inner); - background: var(--color-button-light); - padding: 16px 26px 16px 20px; + border: 1px solid var(--color-line-dashed); + //background: var(--color-button-light); + padding: 16px 24px; display: inline-grid; - grid-template-columns: 36px 1fr; - gap: 12px; + grid-template-columns: auto 1fr; + gap: 22px; align-items: center; + + &:hover + { + background: var(--color-button-light); + border-color: transparent; + } } .ui-filelink-icon { position: relative; top: -2px; - left: 4px; color: var(--color-text); } diff --git a/zero.Core/FileStorage/WebRootFileSystem.cs b/zero.Core/FileStorage/WebRootFileSystem.cs new file mode 100644 index 00000000..d1c64cf6 --- /dev/null +++ b/zero.Core/FileStorage/WebRootFileSystem.cs @@ -0,0 +1,28 @@ +namespace zero.Media; + +public class WebRootFileSystem : PhysicalFileSystem, IWebRootFileSystem +{ + protected string PublicPathPrefix { get; } + + + public WebRootFileSystem(string root, string publicPathPrefix) : base(root) + { + PublicPathPrefix = (publicPathPrefix ?? String.Empty).EnsureEndsWith('/'); + } + + + /// + public override string MapToPublicPath(string path) + { + if (path.IsNullOrEmpty()) + { + return null; + } + return PublicPathPrefix + path.TrimStart('/'); + } +} + + +public interface IWebRootFileSystem : IFileSystem +{ +} \ No newline at end of file diff --git a/zero.Core/FileStorage/ZeroFileStorageModule.cs b/zero.Core/FileStorage/ZeroFileStorageModule.cs index ae128745..f195cdc0 100644 --- a/zero.Core/FileStorage/ZeroFileStorageModule.cs +++ b/zero.Core/FileStorage/ZeroFileStorageModule.cs @@ -15,5 +15,11 @@ internal class ZeroFileStorageModule : ZeroModule { opts.ZeroAssetsPath = "zero"; }); + + services.AddSingleton(svc => + { + IWebHostEnvironment env = svc.GetRequiredService(); + return new(env.WebRootPath, null); + }); } } \ No newline at end of file