For some reason, this line of code is always returning the host name url instead of the CMS page url. However, it does work for commerce data. This code is executed in a scheduled job.
url = this.UrlResolver.GetUrl(content.ContentLink, language);
Any ideas how to solve this?
Are you sure you have correct domains setup that match where you're browsing from and everything is published? This can happen if you've not, you'll also see that in the CMS the URl when you however over globe in the header is also empty
When you say that GetUrl is returning the hostname url rather than the CMS page URL, do you mean that it's returning http://mysite.tld/mypage/ rather than just /mypage/ or /en/mypage/?
I suspect this issue will be related to the host name setup on your site. GetUrl takes the context in which it's run into account so, if you've got a host set up for mysite.com with the language en and mysite.fr with the language fr and you call GetUrl with an FR page reference from within the EN site, it will return you the full URL including the mysite.fr host. If you make that same call from within the FR site you'd get the URL without the host. This is for good reason in that the path "/", for example, will return different pages depending on which domain you append it to.
Is it an issue that you get the domain returned in the URL?
Currently I've set up 2 host names:
They both have no culture set.
The problem occurs when I run a scheduled job to create an XML sitemap (I'm using Geta.SEO.Sitemaps). The GetUrl method is always returning https://www.mysite.com/language and not the full URL. Maybe this is because it's a scheduled job and there's no HTTP context?
So it's not an issue that the domain is included in the URL but I need the full URL and not only the domain part.
We use the Geta sitemap and it creates the sitemap okay but you have to in the configuration add the hostname you're generating and it needs to map to your domain in the site configuration. If you post the screenshot of your geta configuration and the site configuration I'll check it over.
Unfortunately, I'm not allowed to upload images with my account here so check this: https://gyazo.com/e1409c367421f7e7c44d193fb42a3648
Thanks a lot!
You should be able to just drag and drop in to the rich text editor here. Can you post your sites configuration as well please.
I'm not allowed to upload images because I'm not working for a EPiServer partner company. I'm not even allowed to embed hyperlinks that's why you have to copy paste my URL's :/
Here's my site configuration: https://gyazo.com/10b7947ea43bf4b3e97ac8c7005d1ce3
Ah I didn't realize there was that restriction. I've not used the plugin with multi language before so not 100% sure on this one, I'll message Valdis who works at Geta he might have some ideas.
I managed to solve it on my own. It turned out we were using an older version of the Geta.SEO.Sitemaps package. And instead of adding it as a NuGet package, we had a copy of the source code in our solution because we had to create a custom ContentFilter and there was no way to override it.
This code line was missing in the SitemapXmlGenerator class and I think that caused the error:
SiteDefinition.Current = SiteSettings;
Anyway, in the latest version of the Geta package, there's an interface IContentFilter so now I added the latest version via NuGet (as it should be instead of having a copy) and created a custom implementation of IContentFilter.
Ahh that makes sense, I've had that happen before. Glad you got it sorted
glad Bart, you solved the issue. if you have any further concerns or limitations using Geta.Sitemap package, feel free to file us an issue on GitHub. thx