diff --git a/Oqtane.Client/UI/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor index 64e2f59d..275a8829 100644 --- a/Oqtane.Client/UI/SiteRouter.razor +++ b/Oqtane.Client/UI/SiteRouter.razor @@ -625,11 +625,11 @@ { if (resource.ResourceType == ResourceType.Stylesheet || resource.Level != ResourceLevel.Site) { - if (resource.Url.StartsWith("~")) + if (!string.IsNullOrEmpty(resource.Url) && resource.Url.StartsWith("~")) { resource.Url = resource.Url.Replace("~", "/" + type + "/" + name + "/").Replace("//", "/"); } - if (!resource.Url.Contains("://") && alias.BaseUrl != "" && !resource.Url.StartsWith(alias.BaseUrl)) + if (!string.IsNullOrEmpty(resource.Url) && !resource.Url.Contains("://") && alias.BaseUrl != "" && !resource.Url.StartsWith(alias.BaseUrl)) { resource.Url = alias.BaseUrl + resource.Url; } diff --git a/Oqtane.Client/UI/ThemeBuilder.razor b/Oqtane.Client/UI/ThemeBuilder.razor index d22b21b4..3797dd05 100644 --- a/Oqtane.Client/UI/ThemeBuilder.razor +++ b/Oqtane.Client/UI/ThemeBuilder.razor @@ -227,38 +227,4 @@ } return stylesheets; } - - private string ManageScripts(List resources, Alias alias) - { - var scripts = ""; - if (resources != null) - { - foreach (var resource in resources.Where(item => item.ResourceType == ResourceType.Script && item.Location == ResourceLocation.Head)) - { - var script = CreateScript(resource, alias); - if (!scripts.Contains(script, StringComparison.OrdinalIgnoreCase)) - { - scripts += script + Environment.NewLine; - } - } - } - return scripts; - } - - private string CreateScript(Resource resource, Alias alias) - { - if (!string.IsNullOrEmpty(resource.Url)) - { - var url = (resource.Url.Contains("://")) ? resource.Url : alias.BaseUrl + resource.Url; - return ""; - } - else - { - // inline script - return ""; - } - } } diff --git a/Oqtane.Server/Components/App.razor b/Oqtane.Server/Components/App.razor index 666dcef1..c717172d 100644 --- a/Oqtane.Server/Components/App.razor +++ b/Oqtane.Server/Components/App.razor @@ -543,8 +543,6 @@ } else { - var url = (resource.Url.Contains("://")) ? resource.Url : alias.BaseUrl + resource.Url; - var dataAttributes = ""; if (!resource.DataAttributes.ContainsKey("data-reload")) { @@ -566,12 +564,24 @@ } } - return ""; + if (!string.IsNullOrEmpty(resource.Url)) + { + var url = (string.IsNullOrEmpty(resource.Url) || resource.Url.Contains("://")) ? resource.Url : alias.BaseUrl + resource.Url; + + return ""; + } + else + { + return "" + resource.Content + ""; + } } } @@ -744,11 +754,11 @@ { if (rendermode == RenderModes.Static || resource.ResourceType == ResourceType.Stylesheet || resource.Level == ResourceLevel.Site) { - if (resource.Url.StartsWith("~")) + if (!string.IsNullOrEmpty(resource.Url) && resource.Url.StartsWith("~")) { resource.Url = resource.Url.Replace("~", "/" + type + "/" + name + "/").Replace("//", "/"); } - if (!resource.Url.Contains("://") && alias.BaseUrl != "" && !resource.Url.StartsWith(alias.BaseUrl)) + if (!string.IsNullOrEmpty(resource.Url) && !resource.Url.Contains("://") && alias.BaseUrl != "" && !resource.Url.StartsWith(alias.BaseUrl)) { resource.Url = alias.BaseUrl + resource.Url; } diff --git a/Oqtane.Server/Repository/ModuleDefinitionRepository.cs b/Oqtane.Server/Repository/ModuleDefinitionRepository.cs index d8bb7f4e..c2821a8b 100644 --- a/Oqtane.Server/Repository/ModuleDefinitionRepository.cs +++ b/Oqtane.Server/Repository/ModuleDefinitionRepository.cs @@ -364,7 +364,7 @@ namespace Oqtane.Repository { foreach (var resource in moduledefinition.Resources) { - if (resource.Url.StartsWith("~")) + if (!string.IsNullOrEmpty(resource.Url) && resource.Url.StartsWith("~")) { resource.Url = resource.Url.Replace("~", "/Modules/" + Utilities.GetTypeName(moduledefinition.ModuleDefinitionName) + "/").Replace("//", "/"); } diff --git a/Oqtane.Server/Repository/ThemeRepository.cs b/Oqtane.Server/Repository/ThemeRepository.cs index ba901dd9..8962402c 100644 --- a/Oqtane.Server/Repository/ThemeRepository.cs +++ b/Oqtane.Server/Repository/ThemeRepository.cs @@ -329,7 +329,7 @@ namespace Oqtane.Repository { foreach (var resource in theme.Resources) { - if (resource.Url.StartsWith("~")) + if (!string.IsNullOrEmpty(resource.Url) && resource.Url.StartsWith("~")) { resource.Url = resource.Url.Replace("~", "/Themes/" + Utilities.GetTypeName(theme.ThemeName) + "/").Replace("//", "/"); } diff --git a/Oqtane.Shared/Models/Resource.cs b/Oqtane.Shared/Models/Resource.cs index 42ecb5f9..ec0e4477 100644 --- a/Oqtane.Shared/Models/Resource.cs +++ b/Oqtane.Shared/Models/Resource.cs @@ -24,7 +24,7 @@ namespace Oqtane.Models get => _url; set { - _url = (value.Contains("://")) ? value : (!value.StartsWith("/") && !value.StartsWith("~") ? "/" : "") + value; + _url = (string.IsNullOrEmpty(value) || value.Contains("://")) ? value : (!value.StartsWith("/") && !value.StartsWith("~") ? "/" : "") + value; } } diff --git a/Oqtane.Shared/Shared/Utilities.cs b/Oqtane.Shared/Shared/Utilities.cs index 45888f0c..ca710771 100644 --- a/Oqtane.Shared/Shared/Utilities.cs +++ b/Oqtane.Shared/Shared/Utilities.cs @@ -501,11 +501,11 @@ namespace Oqtane.Shared public static string GetUrlPath(string url) { - if (url.Contains("?")) + if (!string.IsNullOrEmpty(url) && url.Contains("?")) { url = url.Substring(0, url.IndexOf("?")); } - return url; + return url ?? ""; } public static string LogMessage(object @class, string message)