将.NET程序集资源中的图片加载到一个简单的HTML文件中

本文关键字:一个 文件 简单 HTML 加载 程序集 NET 资源 | 更新日期: 2023-09-27 17:59:46

我有一个.NET服务器控制应用程序,它只返回一些HTML。我还需要将几个图片文件嵌入到程序集中,以便HTML文件可以将它们用作每个文件的src=。

我们只需要一个HTML文件,它作为嵌入式资源存在于项目中,服务器控制代码将读取这个HTML并提供它。在那个html中,我们需要有所有的图片src链接(以及CSS、js等)来指向嵌入的资源文件。

有人知道我会在图片的HTML文件中放入什么代码,使其指向嵌入的图片文件吗?

我必须大规模地做这件事。。。数百次。我真的很想用一种编程的方法来做这件事,这样我就可以写一个包装器,当我们用新的html、图片文件等更新服务器控件时,再也不用碰它了。

可以想象一种在编译时实现这一点的方法,我可以用GetManifestResourceNames循环遍历嵌入的文件,然后用HTTP资源链接替换()src链接?

感谢您的指导!

将.NET程序集资源中的图片加载到一个简单的HTML文件中

嗯,你的问题涵盖了很多方面。让我重复一遍,看看我是否得到了它:你有一个程序集,里面有一个原始的HTML文件。这个文件引用了一些项目,这些项目将在同一程序集中找到,你也希望根据请求将它们提供给客户端。

一个可能的解决方案可能是这样。

  • 不要使用原始HTML文件,而是使用模板化的文件。然后,将所有可用的资源名称作为正确的URL输入模板引擎,以替换占位符。你可能想看看DotLiquid
  • 为要提供服务的每个文件类型创建一个HTTP处理程序。在处理程序中,您可以从dll的资源中提取项目并为其提供服务

或者,如果这些资源相当小,则需要查看数据URI方案,以保存额外的请求并省略处理程序。有了这个,您可以直接用数据URI替换占位符,并首先提供一个包含所有内容的HTML文件。

另一种选择是让.NET Server Control应用程序检查可选的GET参数,并返回图像而不是HTML。

您最初的HTML请求可能很简单:

GET netServerApp

它返回带有普通嵌入链接的HTML。

HTML中的HTML图像链接可能如下所示:

<img src="netServerApp?src=Image1.svg">

或类似物。然后,您的服务器应用程序将返回相应的图像,而不是HTML。

这意味着要往返几次才能得到所有东西,但这对HTML来说是正常的。