标签: umbraco7

使用Visual Studio部署Umbraco站点

我差不多完成了我的第一个Umbraco网站,我一直在浏览这些论坛以及ourumbraco.org论坛,试图找到关于如何将Umbraco网站发布到实时临时区域的权威指南,到目前为止,我发现这样的指南不存在.特别是,我感兴趣的是如何部署使用Visual Studio开发的Umbraco站点以及可以为生产环境删除/简化哪些文件夹.我使用的是最新版本的Umbraco 7.3.1和一个SQL CE数据库.

我很高兴使用FTP将网站上传到服务器,如果这是一个选项,但我也想确保我的网站具有开箱即用Umbraco安全性的基本级别,所以我假设安装目录应该是除去.

任何有关这方面的帮助将不胜感激.我正在使用Visual Studio 2013.

.net deployment umbraco visual-studio umbraco7

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

Umbraco - 获取节点/组中使用的所有标签

我使用了GetTags()方法umbraco.cms.businesslogic.Tags.Tag来获取组或节点下的所有标签.

var tags = umbraco.cms.businesslogic.Tags.Tag.GetTags("default");
Run Code Online (Sandbox Code Playgroud)

但是umbraco.cms.businesslogic.Tags.Tag现在已经过时了,还有其他更好的选择吗?

此外,新库是否提供基于标签的节点查询?

umbraco umbraco7 umbraco-tags

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

Umbraco 7使用语言/词典

我们的项目终于到了可以添加翻译的地步.我似乎无法弄清楚如何在Umbraco 7中实际使用语言.我在后端添加了一种语言和一些字典项,但是如何在我的代码中选择给定语言?

是否有任何助手可以在API中获得翻译?像DictionaryHelper.Translate("Answers","da-DK"); ?还是类似的?有没有办法在启动控制器中设置语言等,并且总是从字典中获取该语言?

提前致谢.乔纳斯.

c# dictionary translation umbraco7

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

如何使用Courier 2自动化Umbraco部署

我们的团队使用Umbraco 7作为我们的CMS.我们有一个简单的MVC网站和两个主要环境; 测试和PROD.每个环境都有自己的Umbraco安装和数据库.

我的任务是设置一个自动部署流程,只需从我们的TEST Umbraco中获取所有内容,媒体和设置,然后将其安装到我们的生产环境中.通过点击Octopos部署中的按钮来触发此过程(这反过来将调用ac#程序,该程序将通过调用必要的Umbraco API和插件来处理实际部署).

作为我的部署工具,我决定使用Courier 2.我正在使用试用版在我在本地设置的两个站点之间进行同步(UmbracoA.local和UmbracoB.local).我设法使用Backoffice中的Courier 2界面,在UmbracoA上创建一个修订版,将其传输到UmbracoB并手动安装.

现在我必须找到一种方法来调用Courier 2 API并自动触发这些步骤.(任何用户都不应该使用Backoffice来完成任何部署过程).

自动化的步骤是:

  • 创建包含Umbraco站点A上所有内容的修订
  • 将所述修订转移到Umbraco站点B.
  • 在Umbraco站点B上安装所述修订版

根据我的理解,Courier 2有一个事件模型,我可以将自己的步骤挂钩,但我只是想触发Courier 2的本地事件,即创建修订并在第二个站点上推送和安装它.当然,这必须是对他们的API的一个相当简单的调用?

你可以想象,我对Umbraco和Courier 2都很新,但基本上我正在寻找的只是一个代码示例,说明如何调用事件来触发这个过程.

在此先感谢,如果我能提供有关我的方案的更多信息,可以帮助我回答我的问题,请告诉我!

额外信息: - Umbraco版本7.5.4 - Courier版本2.52.15

c# umbraco continuous-deployment umbraco-contour umbraco7

7
推荐指数
0
解决办法
462
查看次数

在Umbraco 7建立联系表格

我是MVC的新手,我已经按照教程来构建联系表单页面,但是收到此错误消息:命名空间名称'Models'不存在

控制器 - ContactSurfaceController.cs

namespace test.Controllers {
public class ContactSurfaceController : SurfaceController

{
    [HttpPost]
    public ActionResult Contact(ContactModel model)
    {
        if (ModelState.IsValid)
        {
            var sb = new StringBuilder();
            sb.AppendFormat("<p>Meddelande: {0}</p>", model.Message);
            sb.AppendFormat("<p>Namn: {0}</p>", model.Name);
            sb.AppendFormat("<p>E-post: {0}</p>", model.Email);
            sb.AppendFormat("<p>Telefon: {0}</p>", model.Phone);

            library.SendMail("noreply@test.se", "info@test.se", model.Subject, sb.ToString(), true);

            return RedirectToUmbracoPage(model.ThankYouPage);
        }
        return CurrentUmbracoPage();
    }


} 
}
Run Code Online (Sandbox Code Playgroud)

型号 - ContactModel.cs

namespace test.Models
{
    public class ContactModel
    {
        [Required]
        [DisplayName("Ärende")]
        public string Subject { get; set; }
        [Required]
        [DisplayName("Namn")]
        public string Name { get; set; } …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor umbraco7

6
推荐指数
1
解决办法
5199
查看次数

优化的捆绑包在从网站请求时返回404

我设置时遇到这个奇怪的问题:

BundleTable.EnableOptimizations = true;
Run Code Online (Sandbox Code Playgroud)

当我尝试打开我的网站时,它无法加载,当我打开Chrome控制台时,我看到以下消息:

GET/localhost/bundles/scripts/angularjs/commonmodules?v = 13-uWpwzN3U6kiHVssXRdpywHxrn09twvYKwoDVN3SU1 404(未找到)

但是,如果我尝试打开chrome控制台上显示的链接,它加载得很好,换句话说,当我尝试直接打开它时找到链接,但是当页面尝试时,服务器(IIS 7.5)返回404通过标签链接它.

有没有人经历过这种奇怪的行为?

我的包的虚拟路径不映射任何现有文件或目录,我使用以下代码包含它们:

var myBundle= new ScriptBundle("~/bundles/scripts/angularjs/bootstrapping");
bootstrapping.Include("~/app/app.js")
    .Include("~/app/config.js")
    .Include("~/app/config.exceptionHandler.js")
    .Include("~/app/config.route.js");
bundles.Add(bootstrapping);
Run Code Online (Sandbox Code Playgroud)

我已经尝试在web.config的system.webServer上添加以下行:

<modules runAllManagedModulesForAllRequests="true">
    <remove name="BundleModule" />
    <add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>
Run Code Online (Sandbox Code Playgroud)

我不确定这可能是相关的,但我在这个网站上使用Umbraco v7,这只有在我将EnableOptimizations设置为"true"时才会发生.

asp.net asp.net-mvc-4 bundling-and-minification umbraco7

6
推荐指数
1
解决办法
1731
查看次数

Umbraco7新的后台部分,编辑日期字段,AngularJS

我正在尝试为后台的新部分创建一个编辑屏幕.我已经按照各种教程了解了如何解决这个问题,它适用于普通文本字段.

但是,我的模型有2个日期字段作为其中的一部分,我想为它们添加一些日期选择器.我不能为我的生活让他们去工作.我已经尝试连接到bootstrap并使用Bootstrap-DatePicker将文本输入转换为日期时间选择器但无济于事.

更令人讨厌的是,如果我使用输入类型的日期,那么使用日期选择器创建屏幕没有问题.但是由于Umbraco中的AngularJs版本,编辑屏幕无法正确绑定,因此试图找到解决方法.

我正在使用AngularJS方法来创建视图.

任何有关如何实现这一目标的帮助将不胜感激.

链接:

主要教程

Bootstrap-DatePicker帮助文档

----上面的问题发布在我们的.Umbraco.org论坛上,但没有回复,所以我想我会在这里问你们有帮助的人.----

更多的信息,

我试过这样的事情:

Plunker可能的解决方案示例

但是,在Umbraco中实现它似乎不起作用.我收到一个错误,说当我检查页面时找不到Moment,我可以看到其中存在以下行:

<script src="http:////cdnjs.cloudflare.com/ajax/libs/moment.js/2.1.0/moment.min.js"></script> 
Run Code Online (Sandbox Code Playgroud)

我会在这里粘贴整个Plunker示例,但示例本身工作正常.当我在Umbraco插件代码中使用它时,它不起作用.

我现在完全失去了.理想情况下,我想要一些人为的"日期选择器",但目前似乎不是一个可行的选择,所以Plunker方法是我的下一个想法.

提前致谢

jquery plugins angularjs umbraco7

6
推荐指数
1
解决办法
1631
查看次数

Umbraco 404与不同的文化不起作用

我的问题实际上接近这个问题:根据文化,Umbraco V6 404没有得到妥善处理

我有2个不同文化的目录:

Content
       EN
          page1
          page2
          404
       FR
          page1
          404
Run Code Online (Sandbox Code Playgroud)

当我从FR页面转到404页面时,文化又回归英语.

看起来它是基于网址的,并且可能使用404引擎无法找到链接,因此它将文化设置为默认,但我希望在用户遇到404页面时保持这种文化.

我的配置:

    <error404>
        <errorPage culture="en-US">1187</errorPage>
        <errorPage culture="fr-FR">1189</errorPage>
    </error404>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?

我在域中使用一级路径.

网址示例:

  • 网站/ EN /第1页
  • 网站/ EN /第2页
  • 网站/ FR /第1页

我使用umbraco 7.2.5

c# multilingual umbraco http-status-code-404 umbraco7

6
推荐指数
1
解决办法
1098
查看次数

如何申请Umbraco Collection的Where条件

我想申请Umbraco Collection的条件.

码:

var workList = CurrentPage.work.ToString().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
var workCollection = Umbraco.Content(workList);
@foreach (var item in workCollection.Where("productImage!=\"\"").Skip((i - 1) * iterationCount).Take(iterationCount))
Run Code Online (Sandbox Code Playgroud)

但我总是得到没有过滤器的数据.
ProductImage是媒体选择器 在此输入图像描述 在此输入图像描述

umbraco where umbraco7

6
推荐指数
1
解决办法
387
查看次数

无法使用webconfig中的applicationInitialization预热页面

我有一个简单的Umbraco 7.7.2应用程序,我在Azure(app-service)上托管它.当我重新启动服务器时,第一次请求一个非常烦人的页面需要20-40秒,特别是当负载很高时,你需要缩小以减少响应时间.

我在webconnfig中尝试过这个设置,但它似乎不起作用.

<system.webServer>
  <applicationInitialization>
    <add initializationPage="/page1/?warmup=1" hostName="mydomain.com" />
    <add initializationPage="/page1/page2/?warmup=1" hostName="mydomain.com" />
  </applicationInitialization>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

我可能会以错误的方式尝试它,但我做的是重新启动服务器,我已经离开它2-3分钟而没有请求任何页面.

我检查了我的Umbraco日志,应用程序甚至没有启动.然后我已经请求了主页,它花了40秒才出现.

然后我尝试了mydomain.com/page1,它也花了20秒,因为它是第一个访问它的请求.

*PS:第一次请求后,网站速度非常快,每页加载时间不到100毫秒

更新

我已经实现了重写以阻止下一次重定向,正如Kevin建议的那样.结果,我的Umbraco将启动,但请求仍然没有到达页面.

在我的母版页,我添加了一行写在日志中的线路,如果它在查询字符串的热身和它的作品在页面从浏览器hitted:

if (!string.IsNullOrWhiteSpace( Request.QueryString["warmup"]))
    {
        var pageC = Model.Content;
        logger.Info(pageC.UrlAbsolute()+" "+ Request.QueryString);
    }
Run Code Online (Sandbox Code Playgroud)

但是,我的日志中没有任何内容

2018-02-08 15:16:51,245 [P7036/D2/T1] INFO Umbraco.Core.CoreBootManager - Umbraco应用程序启动完成(耗时12727ms)2018-02-08 15:16:54,911 [P7036/D2/T1] INFO MyNamespace.Web.CustomStartup - 基本配置完成!

这是我根据Kevin的回答添加的混淆:

 <rule name="No redirect on warmup request (request from localhost with warmup user agent)" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{REMOTE_ADDR}" pattern="127.0.0.*" />
              </conditions>
          <action type="Rewrite" url="{URL}" />
        </rule>
Run Code Online (Sandbox Code Playgroud)

另外,我在微软上发现了另一个类似的配置: …

umbraco azure warm-up umbraco7 azure-app-service-envrmnt

6
推荐指数
2
解决办法
1593
查看次数