标签: umbraco

如何在Umbraco中设置默认网页

我刚刚开始尝试使用Umbraco,所以我希望这听起来并不愚蠢.

我正在尝试将默认网页设置为我的网站,但我没有运气.我最近安装了umbraco v 4.7.1.1,以及使用安装向导时可以选择的博客入门套件.

在我的"内容视图"中,我有以下结构:

内容(文件夹)

  • 个人网站(文件夹)
    • 指数
    • 关于
    • MyTestBlog

当我查看MyTestBlog的Properties选项卡时,Template属性设置为"Blog Post".当我访问www.mytestsite.com时,MyTestBlog上的内容会显示在网站的默认网页上.

我将Index页面的Template属性设置为"Textpage".我右键单击了"个人站点"文件夹并选择了"排序".在"排序"弹出窗口中,我将"索引"拖动到列表顶部,使其排序顺序为零(0).

从我读过的内容来看,作为第一项的设置将是Umbraco中的默认网页,但对我来说似乎并非如此.无论我尝试什么,我都无法将Index作为网站的默认网页.

我已经检查过以确保所有网页都已发布.有什么我想念或不做的事吗?

谢谢!

umbraco umbraco-blog

8
推荐指数
1
解决办法
9053
查看次数

从umbraco中的剃刀宏获取堆栈跟踪

我继承了一个基于umbraco构建的代码库.它使用剃刀脚本来渲染视图.

每当出现错误时,我会在输出中得到类似的内容:

Error loading Razor Script Product.cshtml
String reference not set to an instance of a String. Parameter name: s
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,在帮助识别错误方面毫无用处.

我不知道这是不是umbraco或razor问题(我第一次使用它)是否有办法可以打开正确的堆栈跟踪?

umbraco razor

8
推荐指数
1
解决办法
6188
查看次数

如何在Umbraco中更改URL名称

这是我第一次使用Umbraco,我使用错误的命名格式创建了文档类型/页面,现在这已经发生在我的页面URL中/about-page/.我将如何更改它们,/about因为我已经搜索了后端管理面板,似乎无法改变它们的link to document值.

有没有人能够使用umbracoUrlAlias或umbracoUrlName提供一个基于代码的简单示例,我最好如何在Razor中更改它.

谢谢

umbraco umbraco7

8
推荐指数
1
解决办法
1万
查看次数

Umbraco https重写规则会导致无限循环

我有以下重写规则,在IIS7上运行的常规asp.net项目上完全正常.

<rule name="HTTP to HTTPS redirect" stopProcessing="true">
  <match url="(.*)" />
    <conditions>
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
    </conditions>
  <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
Run Code Online (Sandbox Code Playgroud)

因此,在http访问时,我们的一个页面://{domain}/aboutus将重定向到https://{domain}/aboutus.现在在Umbraco站点中放置相同的重写规则会导致无限循环.我们的Umbraco网站没有任何其他重写规则.这让我觉得Umbraco有点劫持从http到https的路由并导致无限循环.我们缺少什么?

iis-7 rewrite umbraco

8
推荐指数
1
解决办法
2365
查看次数

哪种类型的缓存适合在Umbraco项目中使用,如何实现智能缓存?

Umbraco HttpContext.Current.CacheApplicationContext.ApplicationCache.RuntimeCacheUmbraco有什么不同?哪一个在效率方面更好用?

我用过Umbraco 7.4.x我的项目和ASP.NET MVC.在我的项目中,我有一个可以包含这么多项目的产品列表,因此我想使用缓存.具体来说,我想将我的数据放在缓存中,当一个新项添加到Products节点时,缓存会自动更新.我该如何实现它?

修改:请给我一个实现,详细说明我的代码.

Products.cshtml:

@using Jahan.Handicraft.Model.UModel.URenderModel
@using Jahan.Handicraft.Model.UModel

@inherits Umbraco.Web.Mvc.UmbracoViewPage<BaseRenderModel<Jahan.Handicraft.Model.UModel.Products>>


 @foreach (var prod in Model.Model.ProductList.Skip((page - 1) * pageSize).Take(pageSize))
    {
       @*<div>LOAD DATA</div>*@
    }
Run Code Online (Sandbox Code Playgroud)

ProductsController.cs:

namespace Jahan.Handicraft.Web.Mvc.UmbracoCms.App.Controllers
{
    public class ProductsController : BaseRenderMvcController<Products>
    {
        // GET: Products
        public override ActionResult Index(RenderModel model)
        {
            return base.Index(Instance);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

BaseRenderMvcController.cs:

public class BaseRenderMvcController<TBaseEntity> : RenderMvcController    where TBaseEntity : BaseEntity
{
    private BaseRenderModel<TBaseEntity> _instance;
    public BaseRenderModel<TBaseEntity> Instance
    {
        get
        {
            if …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc performance caching umbraco umbraco7

8
推荐指数
1
解决办法
455
查看次数

Umbraco 4.7.2安装不会加载图像,CSS,Javascript等

我一直试图在IIS 7下的Windows 7机器上安装Umbraco.我能够使用Web平台安装程序通过WebMatrix启动并运行,但我想在IIS中运行它.

无论我是通过设置新的网站复制二进制文件来手动执行安装,还是让我让Web平台安装程序执行此操作,我总是会看到一个缺少所有CSS,图像,js等的安装页面.

当我尝试直接点击这些资源时,我总是被重定向回安装页面.

我告诉平台安装程序创建一个全新的网站.没有指定虚拟目录/应用程序名称.我已经按照我能找到的所有在线指示进行了跟踪.

日志显示401未经授权的错误:

2012-05-11 02:42:22 127.0.0.1 GET /umbraco_client/installer/css/all.css - 80 - 127.0.0.1 Mozilla/5.0 +(兼容; + MSIE + 9.0; + Windows + NT + 6.1; + WOW64; + Trident/5.0)401 3 5 10 2012-05-11 02:42:22 127.0.0.1 GET /umbraco_client/installer/css/reset.css - 80 - 127.0.0.1 Mozilla/5.0 +(兼容; + MSIE +9.0; + Windows + NT + 6.1; + WOW64; + Trident/5.0)401 3 5 10 2012-05-11 02:42:22 127.0.0.1 GET /umbraco_client/installer/css/form.css - 80 - 127.0 .0.1 Mozilla/5.0 +(兼容; + MSIE + 9.0; + Windows …

iis umbraco

7
推荐指数
2
解决办法
2279
查看次数

Umbraco:Node,DynamicNode,Content之间的差异

然后有许多代表Umbraco文档的类:

1) umbraco.cms.businesslogic.Content
2) umbraco.cms.businesslogic.web.Document
3) umbraco.MacroEngines.DynamicNode
4) umbraco.presentation.nodeFactory.Node
Run Code Online (Sandbox Code Playgroud)

还有其他人吗?

你能解释一下他们做了什么,以及何时使用它们?

umbraco.MacroEngines.DynamicNodeumbraco.presentation.nodeFactory.Node看起来是一样的.也许最好使用Node类,因为它更快?

我有一个理论:

umbraco.cms.businesslogic.Contentumbraco.cms.businesslogic.web.DocumentcmsContentcmsDocument数据库表的表示.

umbraco.presentation.nodeFactory.Nodeumbraco.MacroEngines.DynamicNode表示在XML文件中缓存的节点,用于网站.第一个是简单的Node,第二个是添加了动态属性的同一个Node,一个是nodeType中定义的属性.所以,我认为NodeDynamicNode更快

有人可以证实吗?

c# performance umbraco

7
推荐指数
1
解决办法
1万
查看次数

如何手动更改Umbraco中的文档链接

由于与主页的链接不正确,我的面包屑被破坏了.请告诉我,如何手动更改"链接到文档"参数.我使用umbraco 4.7.2我只需要在主页上使用域名,并在内部页面上使用完整的绝对路径.谢谢.

在此输入图像描述

umbraco content-management-system

7
推荐指数
1
解决办法
1万
查看次数

App_Code文件夹在已发布的网站中自动创建

我在VS 2010中使用Umbraco 6创建了一个MVC4应用程序,我创建了一个Web部署项目,我的Team City CI服务器使用该项目将我的网站部署到CI环境进行测试.

在CI服务器上第一次加载主页(或任何页面)时,它加载完全正常.但是,加载页面的行为会在我的CI服务器上创建一个App_Code文件夹,然后我收到消息"由于应用程序已预编译,因此不允许使用目录'/ App_Code /'".删除App_Code文件夹意味着它再次适用于一个页面加载,并再次创建该文件夹.

删除PrecompiledApp.config文件会导致我的站点无法加载YSOD,并声明"对象引用未设置为对象的实例".在堆栈跟踪中的以下点"Umbraco.Web.UmbracoModule.BeginRequest(HttpContextBase httpContext)+25"

要清楚,我的项目中没有App_Code文件夹,我不想要或不需要.我只想让它在页面加载时自动停止创建一个!我在VS中使用了Umbraco并且以相同的方式多次部署,只是没有使用Umbraco 6和MVC项目.

任何想法为什么App_Code被自动创建以及我可以做些什么来阻止它?

非常感谢

理查德

umbraco app-code asp.net-mvc-4

7
推荐指数
1
解决办法
2986
查看次数

Umbraco按语言获取字典项目,怎么样?

在Umbraco v6中,可以使用以下命令获取dictionaryitem:

umbraco.library.GetDictionaryItem("EmailSubject");
Run Code Online (Sandbox Code Playgroud)

这将检索"EmailSubject"的正确值,具体取决于用户访问umbraco网站的文化.

现在我正在编写一个简单的电子邮件类库,我不关心System.Threading.Thread.CurrentThread.CurrentCulture,我不想在获取值之前始终设置CurrentCulture.它有效,但我不喜欢这种方法.我正在写一个简单的邮件库.对于每个邮件收件人,我认为设置这样的文化并不是很有效.

我找到的解决方案(在线搜索,我遗失了来源抱歉)是以下示例:

//2 = the 2nd language installed under Settings > Languages, which is German in my case
var sometext = new umbraco.cms.businesslogic.Dictionary.DictionaryItem("SomeText").Value(2);
Run Code Online (Sandbox Code Playgroud)

我创建了一些帮助方法,使其更容易:

private string GetDictionaryText(string dictionaryItem, string language)
{
    //try to retrieve from the cache
    string dictionaryText = (string)HttpContext.Current.Cache.Get(dictionaryItem + language);

    if (dictionaryText == null)
    {
        dictionaryText = new umbraco.cms.businesslogic.Dictionary.DictionaryItem(dictionaryItem).Value(GetLanguageId(language));
        //add to cache
        HttpContext.Current.Cache.Insert(dictionaryItem + language, dictionaryText, null, DateTime.Now.AddMinutes(10), TimeSpan.Zero);
    }

    return dictionaryText;
}

private int GetLanguageId(string language)
{
    int languageId = 1; //1 …
Run Code Online (Sandbox Code Playgroud)

c# umbraco

7
推荐指数
2
解决办法
7625
查看次数