[英]NancyFx view folder convention not working under Azure with Owin
我有一個非常簡單的模塊,並在NancyFx中查看設置,例如:
public class LoginModule : NancyModule
{
public LoginModule()
{
Get["/login"] = _ => View["login", null];
}
}
該頁面的視圖位於project \\ views \\ login \\ login.cshtml中。
我已經配置了自定義視圖約定來嘗試解決該問題,例如
nancyConventions.ViewLocationConventions.Clear();
nancyConventions.ViewLocationConventions.Add((viewName, model, viewLocationContext) => string.Concat("views/", viewName));
nancyConventions.ViewLocationConventions.Add((viewName, model, viewLocationContext) => string.Concat("views/", viewLocationContext.ModuleName, "/", viewName));
我正在使用Owin(帶有ASP.NET托管程序包的Nancy和Microsoft程序包)來管理Web api層。
該應用程序在本地測試時運行良好,但在部署到Azure時失敗。
Nancy.RequestExecutionException:哦,不! ---> Nancy.ViewEngines.ViewNotFoundException:無法找到視圖“ login”當前可用的視圖引擎擴展名:sshtml,html,htm,cshtml,vbhtml檢查的位置:views / login,views / Login / login
請注意,它已記錄了我的視圖的確切文件夾結構,但是由於某些原因,找不到視圖文件。 注意支持的視圖文件,因此選擇了Razor軟件包。
如果我將視圖文件移到\\ views文件夾中,那么一切都可以,但是如果可以的話,我想在邏輯上將文件分開。
使用引用Project.WebApi(在其中定義了Nancy bootstrapper的Owin項目)的Project.Web項目拆分項目。
為了回應此處的另一篇文章,我將Owin處理程序添加到Project.Web web.config文件中。
<handlers>
<add name="Owin" verb="*" path="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler, Microsoft.Owin.Host.SystemWeb" />
<add name="Nancy" verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*" />
</handlers>
但是沒有成功。
問題很簡單,HTML文件.cshtml
在發布之前需要文件屬性從“ None
更改為“ Content
”的“生成操作”。
如這里記載的工作;
無 -該文件不包括在項目輸出組中,並且在構建過程中未進行編譯。 一個示例是包含文檔的文本文件,例如自述文件。
內容 -該文件未編譯,但包含在“內容”輸出組中。 例如,此設置是.htm或其他類型的Web文件的默認值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.