How to Fix Sitecore SXA Optimized, The Asset Optimizer module incorporated inside the Sitecore Experience Accelerator is used to optimize CSS styles and JS scripts. 온라인카지노
If you wish to increase the performance of your site, enable this module in your production environment
Which will reduce the amount of data that must be transmitted.
You have two options for enabling Asset Optimizer as a Sitecore administrator:
Enabling Sitecore on a global scale for the entire instance
Localization for specific areas
To avoid a cache issue when a new delivery happens, both CSS styles and JS scripts are loaded on the client side with a version prefix.
And SXA is no exception: it adds a timestamp to the optimized assets, as illustrated below:
Script src=”/sitecore/shell/-/media/Base-Themes/SearchTheme/Scripts/optimized-min.js?” t=20160908T094830Z”>
We discovered the following issue in one of the projects I worked on: the timestamp was not created for localized sites.
As illustrated below, all optimized assets had an empty timestamp parameter:
Because the t argument is a versioning element, this results in the client browser not updating the cached version of CSS styles and JS scripts after another deployment.
So, let’s look into this.
The first step is to determine how and where the timestamp is generated.
Starting with the default SXA layout razor page is a terrific idea. SxaLayout.cshtml is the file name.
As we can see, in order to obtain an asset link, it calls the AssetLinksGenerator type’s static GenerateLinks function.
Going deeper, we can locate the GetOptimizedItemLink method, which is in charge of creating asset links. 카지노사이트
It appears as follows:
If an optimized script item is both not null and not empty in the return expression
The BuildAssetPath() extension method is called.
Okay, we’ve found the location where the timestamp is added. It’s intriguing that it comes from the system’s __Updated template field.
What could be the problem with that? Let’s look at this field.
Okay, the __Updated field is part of the Statistics template, which is included in the Standard Sitecore template.
The important point to note here is that this field is not shared. It means that if we have a site with no default localization
Optimized assets should also contain this language version, which is odd – do we really need localized assets (CSS and JS)? I’m not certain.
As a result, we must implement a remedy to resolve this issue for localized sites.
To begin, we must write our own BuildAssetPath extension method (using the same code as above)
With one more line of code inside the if statement:
Item item1 = item.CheckForFallbackVersionIfExists();
If there are no language versions, this extension method (assembly Sitecore.XA.Foundation.SitecoreExtensions.dll, ItemExtensions.cs)
Returns an item in the default language (typically English).
That is exactly what we require for optimal scripts.
Second, we must build a new type (derived from AssetLinksGenerator.cs)
That has the override GetOptimizedItemLink function as well as a new static GenerateLinks method that hides the base one. 카지노 블로그
This was beautiful Admin. Thank you for your reflections.
I am truly thankful to the owner of this web site who has shared this fantastic piece of writing at at this place.
I appreciate you sharing this blog post. Thanks Again. Cool.
Cool that really helps, thank you.
I just like the helpful information you provide in your articles
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
Great information shared.. really enjoyed reading this post thank you author for sharing this post .. appreciated
I think this post makes sense and really helps me, so far I’m still confused, after reading the posts on this website I understand.
You’re so awesome! I don’t believe I have read a single thing like that before. So great to find someone with some original thoughts on this topic. Really.. thank you for starting this up. This website is something that is needed on the internet, someone with a little originality!