簡體   English   中英

NancyFx視圖文件夾約定在Owin下在Azure下不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM