我使用.net WebApi使用JSON数据公开不同的端点。现在我需要一个特定的端点返回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脚本。
我该怎么做?
编辑: 这是我的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
|
|
---> myFirstHtml.html
|
|
---> public
|
|
---> img
| |
| |
| ---> success.jpg
|
|
---> scripts
|
|
---> my-api.js
答案 0 :(得分:0)
WebApi可以提供静态文件。
所以你只需要在你的html文件中设置正确的链接。
例如:
您的<img>
将是这样的:
<img src="~/Content/img/email-icon.png" />
答案 1 :(得分:0)
最后我解决了。我使用owin + katana添加了一个静态文件服务器中间件。
我使用此
更改了我的启动类ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("./extension_0_2_0_10.crx"));
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new RemoteWebDriver(new URL( "http://192.168.99.100:4444/wd/hub"), capabilities);
driver = new Augmenter().augment(driver);
driver.get("http://google.com");
现在,当我的webApi请求我的html页面时,自动提供所有公开的图像脚本和文件。
这段代码是什么将我的http请求“/ html / public”转换为PhysicalFileSystem中指定的真实文件系统路径。
希望这有助于任何人。