【问题标题】:How do I get Sitecore's home url?如何获取 Sitecore 的主页 url?
【发布时间】:2013-12-03 20:21:16
【问题描述】:

如何在没有项目路径的情况下获取站点主页 url 的主要部分 http://www.mysite.com/en?最终,我想将 Model.Url 附加到

这个:

Sitecore.Links.UrlOptions urlOptions = new Sitecore.Links.UrlOptions();
urlOptions.AlwaysIncludeServerUrl = true;
url = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Item, urlOptions);

给我“http://www.mysite.com/en/undergraduate/business/new-information-landing-pages/Akron-stories

Model.Url

给我“/undergraduate/business/new-information-landing-pages/Akron-stories”

var context = new SitecoreContext();
url = context.GetHomeItem<Base_Page>().URL;

给我“/”

【问题讨论】:

    标签: c# asp.net sitecore


    【解决方案1】:

    你可以在linkprovider的web.config中设置参数

    <add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="false" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="Always" languageLocation="filePath" lowercaseUrls="false" shortenUrls="true" useDisplayName="false" />
    

    或在你的 UrlOption 上设置它

    Sitecore.Links.UrlOptions urlOptions = UrlOptions.DefaultOptions;
    urlOptions.LanguageEmbedding = LanguageEmbedding.Always;
    
    // Fetch the start item from Site definition
    var startItem = Sitecore.Context.Database.GetItem(Sitecore.Context.Site.ContentStartPath);
    
    var url = Sitecore.Links.LinkManager.GetItemUrl(startItem, urlOptions);
    

    也总是使用UrlOptions.DefaultOptions 从链接管理器选项中复制当前设置

    【讨论】:

    • 错误 22 'Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Data.Items.Item, Sitecore.Links.UrlOptions)' 的最佳重载方法匹配有一些无效参数。它似乎不喜欢 Sitecore.Context.Site.ContentStartItem
    • 抱歉 - 没有测试代码,Site.ContentStartItem 不是一个项目,我已经编辑了代码
    猜你喜欢
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多