私はWindowsサービスを構築する方法を学んでいますが、ブラウザからのリクエスト(例えばlocalhost:8081/index)が必要です。したがって、HTTP応答にはHTMLページが含まれている必要があります。 index.htmlファイルをダブルクリックするとHTMLページが正常に表示されますが、Webブラウザから要求するとCSSおよびjsファイルがすべて失われます。 私はクロームで開発者のツールを開いて、すべてのCSSとJSファイルが壊れていて、HTMLページのコード(奇妙なもの)を含んでいることを知りました。
C#windows service:画像、CSS、JSをレスポンスとして持つHTMLページ
私はその後http://localhost/index要求、およびオープンのindex.htmlファイルや使用File.ReadAllBytes(ファイル)をリッスンするHttpListenerContextクラスを使用していました。応答を構成するときに、私は次のコードを使用:
responseBytes = File.ReadAllBytes(file);
response.ContentLength64 = responseBytes.Length;
await response.OutputStream.WriteAsync(responseBytes, 0, responseBytes.Length);
response.OutputStream.Close();
誰もがなぜこれが起こっている私が把握するのに役立つことはできますか?
出力にhtmlだけを書き出すので、あなたはすべてをあなたのhtmlにパックするか、または.css、.jsなどをホストする必要があります。 .cssファイルと.jsファイルを参照するだけであれば、ブラウザはどのようにこれらのリソースを取得しますか?あなたのHttpListenerContextはそれらのリソースの要求を受け取りますが、htmlを吐き出します。 – Filburt
私はあなたが何を意味しているのか知っていますが、私の会社のコードベースには実際の例があります。 HTMLファイル以外のリソースをロードするための余分な手順がないようです。 – lolol
'HttpListenerContext'は、そのドメインに対して行われたリクエストをリッスンし、パス/ファイル名に関係なく同じコンテンツを提供している可能性があります。あなたの設定をもっと見ることなく、言うことは不可能です。 –