我正在学习构建一个 Windows 服务,但它需要从浏览器到请求(例如 localhost:8081/index)。因此,HTTP 响应应该包含一个 HTML 页面。
当我双击 index.html 文件时,HTML 页面看起来没问题,但是当我从网络浏览器请求时,它丢失了所有的 CSS 和 js 文件。 然后我在 chrome 中打开开发人员工具,发现所有 CSS 和 JS 文件都已损坏,并且包含来 self 的 HTML 页面的代码(很奇怪)。
我使用 HttpListenerContext 类来监听 http://localhost/index请求,然后打开 index.html 文件并使用 File.ReadAllBytes(file)。在撰写回复时,我使用了以下代码:
responseBytes = File.ReadAllBytes(file);
response.ContentLength64 = responseBytes.Length;
await response.OutputStream.WriteAsync(responseBytes, 0, responseBytes.Length);
response.OutputStream.Close();
谁能帮我弄清楚为什么会这样?
最佳答案
于是我在追代码的时候自己想出了答案。当浏览器请求localhost/index进来的时候,GET方法会先获取index.html,然后还有其他GET请求进来获取css、image、js(奇怪后面没看到之前的请求。)
然后我更新了处理程序来编写包含 CSS、图像和 JS 文件的响应。现在一切正常。
关于C# windows 服务 : HTML page with picture, CSS 和 JS 作为响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42374223/