小编Der*_*ker的帖子

为什么使用Url.Content来引用资源?

在我遇到的几乎所有ASP.NET MVC示例中,我总是看到Url.Content用于引用CSS,JavaScript和Images.没有人解释为什么要使用它.

有人在乎解释吗?

这样做有什么不好:

<img src="/Content/Img/MyImage.png" alt="My Image" />
<script src="/Scripts/jquery.js" type="text/javascript"></script>
<link href="/Content/Css/Default.css" rel="stylesheet" type="text/css" media="all" />
Run Code Online (Sandbox Code Playgroud)

url model-view-controller asp.net-mvc client-side asp.net-mvc-2

5
推荐指数
1
解决办法
1604
查看次数

如何检查Sitecore项是否正在使用别名

目前,Sitecore中的"别名"将生成到同一内容项的多条路线,在某些情况下会对SEO产生负面影响.

我正在寻找一种方法来以编程方式检查当前页面/项目/ URL /请求是否使用别名.

我希望有一些东西:

Sitecore.Web.WebUtil.IsAlias
Run Code Online (Sandbox Code Playgroud)

有关如何检查别名的任何想法?

------- -------更新

这是我目前的解决方案似乎工作得很好......除非有人有更好的想法?:

protected bool IsAlias
{
    get
    {
        string fullPath = LinkManager.GetItemUrl(Sitecore.Context.Item);
        return !HttpContext.Current.Request.RawUrl.StartsWith(fullPath, StringComparison.OrdinalIgnoreCase);
    }
}
Run Code Online (Sandbox Code Playgroud)

------更新2 ------

这是一个基于Yan的建议的工作解决方案.我不相信Sitecore.Context.Database.Aliases.GetTargetUrl()从Sitecore 6.4.1开始工作.所以我不得不即兴发挥一点.

if (Sitecore.Configuration.Settings.AliasesActive &&
    Sitecore.Context.Database.Aliases.Exists(HttpContext.Current.Request.RawUrl))
{
    const string format = "<link rel=\"canonical\" href=\"{0}://{1}{2}\"/>";
    Item targetItem = Sitecore.Context.Database.GetItem(Sitecore.Context.Database.Aliases.GetTargetID(HttpContext.Current.Request.RawUrl));
    return String.Format(format, HttpProtocol, HttpContext.Current.Request.Url.Host, LinkManager.GetItemUrl(targetItem));
}
Run Code Online (Sandbox Code Playgroud)

asp.net alias sitecore sitecore6

5
推荐指数
2
解决办法
3223
查看次数

如何在Sitecore中管理TimeZones?

当我们选择事件的日期和时间时,Sitecore中的当前日期/时间选择器将假定CM服务器的本地系统时间(在我们的情况下为东部标准/夏令时).

很明显,我们需要一种方法让内容作者为事件选择时区.最初,我们决定提供一个Droplist预定的时区的缩写,如'PST",'EST’,'EDT’等.虽然这个解决方案为显示目的OK的,我们立即试图动态生成.ICS时遇到了问题日历约会活动.

为了生成.ICS文件,我们需要一种方法将事件的开始和结束日期(再次在EST或EDT中)和时区缩写(EST,PST等)组合成UTC DateTime对象.

据我所知,ASP.NET不支持时区缩写,因此我认为我们不得不维护缩写列表及其UTC偏移值.仅仅为我们的内容作者提供GMT -08:00,GMT -07:00等时区列表是不够的,我们需要包含某种缩写或名称来帮助他们进行选择.

Sitecore是否有任何内置字段或实用程序来选择时区?

c# asp.net timezone sitecore sitecore6

5
推荐指数
1
解决办法
2933
查看次数

VisitorIdentification控件的用途是什么?

我的Sitecore starterkit网站在每个布局的头部包含以下控件.有人可以解释它的目的是什么以及是否需要它?我在Sitecore SDN上找不到任何关于它的信息......

<sc:VisitorIdentification id="VisitorIdentification" runat="server" />
Run Code Online (Sandbox Code Playgroud)

控制输出:

<link href="/layouts/System/VisitorIdentification.aspx" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

样式表的内容:

.sc_visitor {
}
Run Code Online (Sandbox Code Playgroud)

analytics sitecore sitecore6

5
推荐指数
1
解决办法
5496
查看次数

如何使用LinqToTwitter获取推文的HTML?

我最近从TweetSharp切换到LinqToTwitter,我遗漏的一件事就是以HTML格式检索推文.

TweetSharp有一个名为.TextAsHtml()自动链接提及,哈希标记和超链接的方法.

有谁知道LinqtoTwitter中是否存在这样的功能?任何有关TweetSharp如何实现这一目标的见解都会受到很多关注.

更新:

看起来TweetSharp使用正则表达式来匹配URL,提及和哈希标记.这是一个示例:

private static readonly Regex _parseUrls = new Regex("\\b(([\\w-]+://?|www[.])[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^\\p{P}\\s]|/)))", RegexOptions.IgnoreCase | RegexOptions.Compiled);
private static readonly Regex _parseMentions = new Regex("(^|\\W)@([A-Za-z0-9_]+)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
private static readonly Regex _parseHashtags = new Regex("[#]+[A-Za-z0-9-_]+", RegexOptions.IgnoreCase | RegexOptions.Compiled);
Run Code Online (Sandbox Code Playgroud)

c# asp.net twitter tweetsharp

5
推荐指数
1
解决办法
1929
查看次数

从媒体库中选择图像时,默认为"浏览"选项卡?

从Sitecore 7中的图像字段浏览图像时,是否可以默认使用"浏览"选项卡而不是新的"搜索"选项卡?

新的搜索功能非常适合高级用户,但是,我的内容作者发现它令人困惑,特别是在结果中显示多种语言.在某些情况下,选择搜索结果项也会产生错误,因此我只想在此时禁用它.

在此输入图像描述

sitecore sitecore7

5
推荐指数
1
解决办法
1304
查看次数

如何执行Sitecore的无人参与安装?

我的团队正在尝试使用Sitecore可执行文件通过Salt自动安装Sitecore.我们更喜欢使用.exe而不是手动安装zip包,因为安装向导会通过修改注册表来将Sitecore注册为已安装的程序.从理论上讲,盐会让盐知道"状态"已经实现.

用/?运行可执行文件时?参数,显示以下选项列表:

/? or /help : this help screen
/i : install (default)
/x : uninstall
/q : force silent (no UI) mode
/qb : force basic UI mode
/nq : force full UI mode
/nosplash : do not display splash screen
/Log : enable logging
/LogFile [path] : specify log file
/ConfigFile [path] : specify configuration file
/ExtractCab : extract embedded components
/DisplayCab : display a list of embedded components
/DisplayConfig : display a list of configurations …
Run Code Online (Sandbox Code Playgroud)

installation sitecore salt-stack sitecore-instance-manager

4
推荐指数
1
解决办法
892
查看次数

关于Sitecore发布的简单问题:结束:远程事件

任何人都有运气发布:结束:远程 Sitecore事件或可以阐明它应该如何工作?我根本无法解雇它.

据我所知,这是一个在成功发布到Sitecore远程实例后会触发的事件.问题是,似乎没有关于在哪个服务器上触发此事件(主服务器或从服务器)或哪个服务器应该包含配置设置的文档.

我在我的两台服务器上为所有数据库启用了"历史引擎",如下所示:

<Engines.HistoryEngine.Storage>
  <obj type="Sitecore.Data.$(database).$(database)HistoryStorage, Sitecore.Kernel">
    <param connectionStringName="$(id)">
    </param>
  </obj>
</Engines.HistoryEngine.Storage>
Run Code Online (Sandbox Code Playgroud)

作为测试,我在两台服务器上的publish:end:remote事件中添加了一个自定义类.该类只通过Log.Info()记录"Hello World",但没有显示任何内容.

我使用的是Sitecore 6.4.1(rev.101221).

更新1

我已阅读最新的Scaling指南并制定了所有必需的配置更改.我们的单个Staging/CM服务器和(2)Prod/CD服务器都将EnableEventQueues设置为true,并且ScalabilitySettings.config适用于所有实例.也就是说,我认为问题在于Sitecore将这些排队事件存储在核心数据库中.我们的CD服务器与登台核心数据库隔离,它们仅通过"Web"数据库链接到Staging.我应该将这些排队的事件存储在生产'web'数据库中,如此...

/eventing/providers/add[@name="sitecore"]
Run Code Online (Sandbox Code Playgroud)

...并设置以下属性:systemDatabaseName =" core web "

更新2

我已将事件提供程序设置为使用(共享)生产"web"数据库,现在我看到事件队列涌入EventQueue表.在任何给定时间,该表中的"PublishEndRemoteEvent"事件大约有60条记录.所有这些事件都将"InstanceName"设置为我的Staging实例名称."RaiseLocally"设置为FALSE,"RaiseGlobally"设置为TRUE.奇怪的是,新活动的"创建"日期在某种程度上是将来的7个小时.我们的临时服务器距离我工作的地方仅提前3个小时.我认为这个时差可能是罪魁祸首.

sitecore sitecore6

3
推荐指数
1
解决办法
4182
查看次数

Glass.Mapper是否支持Sitecore 7中MVC模型的链接?

在Sitecore的7,现在可以创建在模型定义的项目/sitecore/layout/Models,并将其链接到我的LayoutsRenderings(而不是硬编码型+组件上各一个).这使得管理变得更加容易,特别是如果我需要更新我的命名空间或查看哪些布局使用特定模型.

也就是说,我遇到了一个问题,Glass.Mapper似乎解析了'Model'字段,好像它是一个text字段,当它实际上是一个Internal Link字段时.这是我得到的错误:

无法从程序集'Glass.Mapper.Sc,Version = 3.0.2.8,Culture = neutral,PublicKeyToken = null'加载类型'/ sitecore/layout/Models/HomeViewModel'.

现在有人在Glass支持链接到Sitecore 7中的模型,或者我是否正确假设它只是没有解析模型的内部链接字段?

asp.net-mvc sitecore sitecore7 glass-mapper

3
推荐指数
1
解决办法
858
查看次数

关闭Sitecore 7.1中的模态对话框?

我有一个自定义对话框,使用以下调用打开ASPX页面:

Sitecore.Context.ClientPage.ClientResponse.ShowModalDialog("/path/to/my/dialog.aspx");
Run Code Online (Sandbox Code Playgroud)

在Sitecore 7.1之前,我已经能够关闭模态对话框并使用以下JavaScript代码段传回一个值:

if (window.opener) {
  window.opener.top.returnValue = 'success';
}
window.returnValue = 'success';
window.close();
Run Code Online (Sandbox Code Playgroud)

由于我的对话框使用的是ASPX页面,因此我无法使用Sitecore.Context.ClientPage.ClientResponse.CloseWindow();它来关闭它(因为Sheer UI框架不存在).不幸的是,我的自定义对话框非常复杂,我的项目时间表让我没有时间将其重写为SPEAK UI应用程序.

话虽这么说,由于新的jQuery驱动模式对话框,上面的JavasScript解决方法已停止在Sitecore 7.1中工作.我想知道是否有人知道如何关闭Sitecore 7.1模式对话框并传回一个值?

sitecore sitecore7 sitecore7.1

3
推荐指数
1
解决办法
1037
查看次数