2017-02-15 4 views
1

.net WebApiを使用して、JSONデータで異なるエンドポイントを公開しています。今、特定のエンドポイントがHTMLページを返す必要があります。私はこれをこのように実装しました。.net WebApiを使用したHTMLページ

[HttpGet] 
[Route("htmlPage/{htmlPageId}")] 
public HttpResponseMessage GetHtmlPage(string htmlPageId) { 
    string rawHtml = m_logic.GetHtmlPageById(htmlPageId); 
    HttpResponseMessage response = new HttpResponseMessage {Content = new StringContent(rawHtml)}; 
    response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); 
    return response; 
} 

私が直面している問題は、HTMLページに画像がいくつかあることです。自分のブラウザからエンドポイントを呼び出すと404エラーが表示されないため、公開する方法がわかりません。私はこれらの画像と私が返す必要があるいくつかのJavascriptスクリプトで私のプロジェクトのフォルダを持っています。

どうすればいいですか?

EDIT: これは私のフォルダ構造は以下の

-->Html 
    | 
    | 
     ---> myFirstHtml.html 
    | 
    | 
     ---> public 
      | 
      | 
      ---> img 
      | | 
      | | 
      | ---> success.jpg 
      | 
      | 
      ---> scripts 
       | 
       | 
       ---> my-api.js 
+0

私の例でわかるように./~~を使用しないでください – Ygalbel

+0

@Ygalbel私はあなたのソリューションを試しましたが、同じエラーが発生しています。 GET http:// localhost:8888/endpoint /〜img/success.jpg 404(見つからない) – acostela

+0

構造体にはlocalhost:8888/public/img/sucess.jpg – Ygalbel

答えて

0

最後に、私はそれを解決しました。私は、owin + katanaを使って静的ファイルサーバーミドルウェアを追加しました。

私は私のhtmlページが私のWEBAPIを介して要求されたときに自動的に公衆の下にあるすべての画像のスクリプトとファイルを提供しています。この

public void Configuration(IAppBuilder application) 
    { 
     //Other webApi configuration 
      application.UseFileServer(new FileServerOptions() 
      { 
       RequestPath = new PathString("/html/public"), 
       FileSystem = new PhysicalFileSystem(@"../../../MyProject/html/public"), 
      }); 

を使用して、私のスタートアップクラスを変更しました。

httpリクエスト "/ html/public"をPhysicalFileSystemで指定された私の実際のファイルシステムパスに翻訳することは何ですか?

これは誰でも手伝ってください。

0

WEBAPIは、静的なファイルを提供することができている私のHTML

<html lang=\"en\"> 
    <head> 
    <title> Simplest HTML </title> 
    <meta name=\"description\" content=\"The Html served\"> 
    <meta name=\"author\" content=\"acostela\"> 
    <script type="text/javascript" src="./public/scripts/my-api.js"></script> 
    </head> 
    <body> 
    <h1> The first Simplest html served!!</h1> 
    <img src="./public/img/success.jpg"/></br></br> 
    </body> 
</html> 

の一部です。

あなたはhtmlファイルに正しいリンクを設定する必要があります。例えば

enter image description here

あなた<img>は次のようになります。

<img src="~/Content/img/email-icon.png" />

+0

これは機能しません。私は同じエラーが発生しています。 GET 404(見つからない) – acostela

+0

どのURLにアクセスしようとしていますか? htmlコードの一部を共有できますか? – Ygalbel

+0

私の質問が更新されました。ありがとうございました! :) – acostela

関連する問題