私はOpenRasta 2.0を使用しており、コンソールアプリケーション内でホスティングしています。OpenRastaで静的HTMLおよび/またはJavascriptを返す方法
私は、たとえば、この設定からいくつかの静的なHTMLページとJavaScriptファイルを返すことができるようにしたいと思い: /index.htmlが /jquery.js
ファイルが完全に静的でを、すなわち無ハンドラまたはリソースが必要です。
私はプロジェクトに適切なファイルを追加し、最初に次の構文を試してみました:
ResourceSpace.Has
.ResourcesOfType<object>()
.AtUri("/")
.HandledBy<HtmlHandler>()
.RenderedByAspx("~/Views/IndexView.aspx");
た.aspxファイルはフォルダの「ビュー」の下にプロジェクトに追加され、ビルドアクションを設定されています'埋め込みリソース'に変換します。この結果、実行時に仮想パスを解決しようとするとNullReferenceExceptionが発生します。私がファイルのビルドアクションを「コンパイル」に設定すると、コンパイルされません。コンソールプロジェクトがASPXを理解できないため、私は推測しています。
Webフォームコーデックを参照する場合、私はまた、この利用できるため、次の省略形の構文を試してみました:
ResourceSpace.Has
.TheUri("/jquery.js")
.ForThePage("~/Views/jquery.js");
をしかし、ダミーハンドラの必要性を削除していますが、これは、私の最初のアプローチと同じ問題を抱えています。私が知る限り、ASPXファイルをコンパイルできないため、WebFormsコーデックはコンソールアプリケーション内で使用できません。
Razorコーデックを使用してHTMLを返すことができました。これは、ビューテンプレートが埋め込まれることを期待しているからです。しかし、私は、同じテクニックを使用して適切なメディアタイプのJavaScriptファイルを返すことができませんでした。静的ファイルを.resourceで定義された.cshtmlファイルに変換する必要がありました。
OpenRastaを使用して静的なHTMLやJavaScriptを返す例はありません。 "TheUri"構文のように、WebFormsコーデックとは独立した専用の構成APIを見つけることができます。
私は、静的な埋め込みファイルの内容を返すために私自身の「EmbeddedFileHandler」を作成することもできますが、これはこのような単純なユースケースであるので、私は何かが欠けてるような気が...依存
私の問題は、Silverlight xapアーカイブを提供したいだけです。 – mark
@mark私はこれにどのように取り組んだのかを記述したブログ記事を作成しました:http://liddellj.im/post/8638364010/serving-static-content-using-openrasta-2-0。それが役に立つと願っています。 –