【问题标题】:Asp.Net Core 2 after publishing get error "Layout cannot be found"Asp.Net Core 2 发布后出现错误“找不到布局”
【发布时间】:2018-12-26 05:48:16
【问题描述】:

发布应用程序后,我收到错误: “InvalidOperationException:找不到布局视图'_Layout'。搜索了以下位置: /Views/Home/_Layout.cshtml /Views/Shared/_Layout.cshtml

Microsoft.AspNetCore.Mvc.Razor.RazorView.GetLayoutPage(ViewContext context, string executionFilePath, string layoutPath)"

布局在 Views/Shared 文件夹中,应用程序在本地使用它,所以这一定是发布有问题。 不幸的是,在已发布的应用程序中,视图全部包含在一个 dll 文件中,我无法解决问题。 可能是我的代码中的任何内容使发布者忘记添加 _Layout.cshtml 视图? 我在 _ViewStart.cshtml 中引用了布局 这应该适用于所有页面。如果没有 Layout,我的应用注定要失败,我不知道该怎么办。

【问题讨论】:

    标签: layout asp.net-core publishing


    【解决方案1】:

    在我的情况下,“复制到输出目录”设置为“不复制”,我将其更改为“如果较新则复制”,然后它就可以工作了。

    【讨论】:

      【解决方案2】:

      好的,经过多次尝试,我找到了发布不包括我的布局页面的原因!这太棘手了,我很惊讶。我希望这对其他人有帮助! 当您右键单击布局文件(或任何其他文件)时,您会看到带有选项属性的菜单。我打开布局文件的属性,我注意到那里有一个“高级”选项:“编译操作”。我的选项设置为“无”,这意味着该文件未编译,因此未包含在发布中。我把它放在“内容”上,再次尝试发布,一切顺利,这次布局文件被编译并包含在发布中。

      【讨论】:

      • 你为我节省了很多时间!谢谢
      • 谢谢,当我将一个文件从解决方案中的一个项目复制到另一个项目时,这发生在我身上,它在源中设置为“内容”,但是当我粘贴文件时,它被设置了改为“无”。
      猜你喜欢
      • 1970-01-01
      • 2016-07-27
      • 2017-05-03
      • 1970-01-01
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 1970-01-01
      相关资源
      最近更新 更多