在简单的HTML文件中加载.NET程序集资源中的图片?

时间:2014-04-23 18:51:31

标签: c# html custom-server-controls servercontrols

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

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

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

我必须大规模地做这件事......数百次。我真的想要一个程序化的方法来做这个,所以我可以编写一个包装器,当我们使用新的html,图片文件等更新服务器控件时,永远不必再触摸它。

有人可能会想到在编译时这样做的方法,我可以使用GetManifestResourceNames循环嵌入文件,然后用我想的HTTP资源链接替换()src链接吗?

感谢您的指导!

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

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

您的原始HTML请求可能很简单:

GET netServerApp

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

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

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

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

这意味着要完成所有事情的几次往返,但这对HTML来说是正常的。