Skip to content

Commit

Permalink
Merge pull request #53 from rbaconsulting/cdn-hotfix
Browse files Browse the repository at this point in the history
CDN caching and security headers hotfix
  • Loading branch information
gilbertaoe committed Aug 16, 2023
2 parents 3f72953 + c1458c9 commit bd9b697
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/" xmlns:role="http://www.sitecore.net/xmlconfig/role/">
<sitecore>
<settings>
<setting name="SXA.Theme.Optimizations.AddSecurityHeaders" value="true" />
<setting name="SXA.Theme.Optimizations.GenerateScriptsOnStartup" value="true" role="ContentManagement or Standalone" />
<setting name="SXA.Theme.Optimizations.GenerateScriptsOnStartup" value="false" role="ContentDelivery" />
</settings>
Expand All @@ -14,9 +13,6 @@
<processor type="SXA.Theme.Optimizations.Pipelines.SubscribeRemoteEvent, SXA.Theme.Optimizations" role="ContentDelivery" />
<processor type="SXA.Theme.Optimizations.Pipelines.Initialize, SXA.Theme.Optimizations" />
</initialize>
<httpRequestProcessed>
<processor type="SXA.Theme.Optimizations.Pipelines.AddSecurityHeaders, SXA.Theme.Optimizations" resolve="true" />
</httpRequestProcessed>
</pipelines>
<commands>
<command name="sxathemeoptimizations:optimize" type="SXA.Theme.Optimizations.Commands.Optimize, SXA.Theme.Optimizations" />
Expand Down
2 changes: 1 addition & 1 deletion SXA.Theme.Optimizations/Constants/SitecoreSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
{
public struct SitecoreSettings
{
public const string AddSecurityHeaders = "SXA.Theme.Optimizations.AddSecurityHeaders";
public const string GenerateScriptsOnStartup = "SXA.Theme.Optimizations.GenerateScriptsOnStartup";
public const string AlwaysIncludeServerUrl = "Media.AlwaysIncludeServerUrl";
public const string MediaLinkServerUrl = "Media.MediaLinkServerUrl";
public const string AlwaysAppendRevision = "Media.AlwaysAppendRevision";
}
}
34 changes: 32 additions & 2 deletions SXA.Theme.Optimizations/Extensions/ThemeExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
using Sitecore.DependencyInjection;
using Sitecore.XA.Foundation.Theming;
using SXA.Theme.Optimizations.Constants;
using System.IO;
using System.Web;

namespace SXA.Theme.Optimizations.Extensions
{
Expand All @@ -13,11 +15,39 @@ public static class ThemeExtensions
/// </summary>
/// <returns>A string for a html script tag's src attribute.</returns>
public static string GetSXAThemeOptimizationsScript()
{
var scriptUrl = GetWebModulesPath();

if (Settings.GetBoolSetting(SitecoreSettings.AlwaysAppendRevision, false))
{
var updatedDate = File.GetLastWriteTimeUtc(GetFullFileSystemPath());

scriptUrl = $"{scriptUrl}?rev={updatedDate:MMddHHmmss}";
}

if (Settings.GetBoolSetting(SitecoreSettings.AlwaysIncludeServerUrl, false))
{
scriptUrl = Settings.GetSetting(SitecoreSettings.MediaLinkServerUrl, string.Empty) + scriptUrl;
}

return scriptUrl;
}

public static string GetWebModulesPath()
{
var themingContext = ServiceLocator.ServiceProvider.GetService<IThemingContext>();
var scriptUrl = string.Format(FileNames.NewlyOptimizedMin, themingContext?.ThemeItem?.Name.Replace(" ", "-").ToLower(), themingContext?.ThemeItem?.Database?.Name.ToLower());

return Settings.GetBoolSetting(SitecoreSettings.AlwaysIncludeServerUrl, false) ? Settings.GetSetting(SitecoreSettings.MediaLinkServerUrl, string.Empty) + scriptUrl : scriptUrl;
var themeName = themingContext?.ThemeItem?.Name?.Replace(" ", "-").ToLower() ?? string.Empty;
var databaseName = themingContext?.ThemeItem?.Database?.Name?.ToLower() ?? string.Empty;

return string.Format(FileNames.NewlyOptimizedMin, themeName, databaseName) ?? string.Empty;
}

public static string GetFullFileSystemPath()
{
var scriptPath = GetWebModulesPath()?.TrimStart('/').Replace("/", "\\") ?? string.Empty;

return $"{HttpRuntime.AppDomainAppPath}{scriptPath}" ?? string.Empty;
}
}
}
25 changes: 0 additions & 25 deletions SXA.Theme.Optimizations/Pipelines/AddSecurityHeaders.cs

This file was deleted.

0 comments on commit bd9b697

Please sign in to comment.