我差不多完成了我的第一个Umbraco网站,我一直在浏览这些论坛以及ourumbraco.org论坛,试图找到关于如何将Umbraco网站发布到实时临时区域的权威指南,到目前为止,我发现这样的指南不存在.特别是,我感兴趣的是如何部署使用Visual Studio开发的Umbraco站点以及可以为生产环境删除/简化哪些文件夹.我使用的是最新版本的Umbraco 7.3.1和一个SQL CE数据库.
我很高兴使用FTP将网站上传到服务器,如果这是一个选项,但我也想确保我的网站具有开箱即用Umbraco安全性的基本级别,所以我假设安装目录应该是除去.
任何有关这方面的帮助将不胜感激.我正在使用Visual Studio 2013.
我使用了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 7中实际使用语言.我在后端添加了一种语言和一些字典项,但是如何在我的代码中选择给定语言?
是否有任何助手可以在API中获得翻译?像DictionaryHelper.Translate("Answers","da-DK"); ?还是类似的?有没有办法在启动控制器中设置语言等,并且总是从字典中获取该语言?
提前致谢.乔纳斯.
我们的团队使用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来完成任何部署过程).
自动化的步骤是:
根据我的理解,Courier 2有一个事件模型,我可以将自己的步骤挂钩,但我只是想触发Courier 2的本地事件,即创建修订并在第二个站点上推送和安装它.当然,这必须是对他们的API的一个相当简单的调用?
你可以想象,我对Umbraco和Courier 2都很新,但基本上我正在寻找的只是一个代码示例,说明如何调用事件来触发这个过程.
在此先感谢,如果我能提供有关我的方案的更多信息,可以帮助我回答我的问题,请告诉我!
额外信息: - Umbraco版本7.5.4 - Courier版本2.52.15
我是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) 我设置时遇到这个奇怪的问题:
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"时才会发生.
我正在尝试为后台的新部分创建一个编辑屏幕.我已经按照各种教程了解了如何解决这个问题,它适用于普通文本字段.
但是,我的模型有2个日期字段作为其中的一部分,我想为它们添加一些日期选择器.我不能为我的生活让他们去工作.我已经尝试连接到bootstrap并使用Bootstrap-DatePicker将文本输入转换为日期时间选择器但无济于事.
更令人讨厌的是,如果我使用输入类型的日期,那么使用日期选择器创建屏幕没有问题.但是由于Umbraco中的AngularJs版本,编辑屏幕无法正确绑定,因此试图找到解决方法.
我正在使用AngularJS方法来创建视图.
任何有关如何实现这一目标的帮助将不胜感激.
链接:
----上面的问题发布在我们的.Umbraco.org论坛上,但没有回复,所以我想我会在这里问你们有帮助的人.----
更多的信息,
我试过这样的事情:
但是,在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方法是我的下一个想法.
提前致谢
聂
我的问题实际上接近这个问题:根据文化,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)
我怎样才能做到这一点 ?
我在域中使用一级路径.
网址示例:
我使用umbraco 7.2.5
我想申请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)
我有一个简单的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)
另外,我在微软上发现了另一个类似的配置: …
umbraco7 ×10
umbraco ×6
c# ×3
.net ×1
angularjs ×1
asp.net ×1
asp.net-mvc ×1
azure ×1
deployment ×1
dictionary ×1
jquery ×1
multilingual ×1
plugins ×1
razor ×1
translation ×1
umbraco-tags ×1
warm-up ×1
where ×1