将.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链接?
感谢您的指导!
嗯,你的问题涵盖了很多方面。让我重复一遍,看看我是否得到了它:你有一个程序集,里面有一个原始的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来说是正常的。