在我遇到的几乎所有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
目前,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) 当我们选择事件的日期和时间时,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是否有任何内置字段或实用程序来选择时区?
我的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) 我最近从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) 从Sitecore 7中的图像字段浏览图像时,是否可以默认使用"浏览"选项卡而不是新的"搜索"选项卡?
新的搜索功能非常适合高级用户,但是,我的内容作者发现它令人困惑,特别是在结果中显示多种语言.在某些情况下,选择搜索结果项也会产生错误,因此我只想在此时禁用它.

我的团队正在尝试使用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) 任何人都有运气发布:结束:远程 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).
我已阅读最新的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 "
我已将事件提供程序设置为使用(共享)生产"web"数据库,现在我看到事件队列涌入EventQueue表.在任何给定时间,该表中的"PublishEndRemoteEvent"事件大约有60条记录.所有这些事件都将"InstanceName"设置为我的Staging实例名称."RaiseLocally"设置为FALSE,"RaiseGlobally"设置为TRUE.奇怪的是,新活动的"创建"日期在某种程度上是将来的7个小时.我们的临时服务器距离我工作的地方仅提前3个小时.我认为这个时差可能是罪魁祸首.
在Sitecore的7,现在可以创建在模型定义的项目/sitecore/layout/Models,并将其链接到我的Layouts和Renderings(而不是硬编码型+组件上各一个).这使得管理变得更加容易,特别是如果我需要更新我的命名空间或查看哪些布局使用特定模型.
也就是说,我遇到了一个问题,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中的模型,或者我是否正确假设它只是没有解析模型的内部链接字段?
我有一个自定义对话框,使用以下调用打开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 ×8
sitecore6 ×4
asp.net ×3
sitecore7 ×3
asp.net-mvc ×2
c# ×2
alias ×1
analytics ×1
client-side ×1
glass-mapper ×1
installation ×1
salt-stack ×1
sitecore7.1 ×1
timezone ×1
tweetsharp ×1
twitter ×1
url ×1