我正在使用 OpenRasta 2.0,并在控制台应用程序中托管。
我希望能够从此设置中返回一些静态 HTML 页面和 JavaScript 文件,例如:/index.html /jquery.js
这些文件是完全静态的,即不需要处理程序或资源。
我已将适当的文件添加到项目中,最初尝试了以下语法:
ResourceSpace.Has
.ResourcesOfType<object>()
.AtUri("/")
.HandledBy<HtmlHandler>()
.RenderedByAspx("~/Views/IndexView.aspx");
.aspx 文件被添加到项目的“视图”文件夹下,并将构建操作设置为“嵌入式资源”。这会在尝试解析虚拟路径时在运行时导致 NullReferenceException。如果我将文件的构建操作设置为“编译”,那么它将无法编译,我猜是因为控制台项目不理解 ASPX。
如果引用 WebForms 编解码器,我还尝试了以下可用的简写语法:
ResourceSpace.Has
.TheUri("/jquery.js")
.ForThePage("~/Views/jquery.js");
但这与我最初的方法存在相同的问题,尽管确实消除了对虚拟处理程序的需要。据我所知,WebForms 编解码器不能在控制台应用程序中使用,因为无法编译 ASPX 文件。
我能够使用 Razor 编解码器返回 HTML,因为这需要嵌入视图模板。但是 - 我无法使用相同的技术返回具有适当媒体类型的 JavaScript 文件,我不得不将原本的静态文件转换为定义了 @resource 的 .cshtml 文件。
我在网上找不到任何使用 OpenRasta 返回静态 HTML 和/或 JavaScript 的示例。我希望为此找到一个专用的配置 API,例如“TheUri”语法,但独立于 WebForms 编解码器。
我可以创建自己的“EmbeddedFileHandler”来返回静态嵌入文件的内容,但我觉得我错过了一些东西,因为这是一个如此简单的用例......