我无法找到传递到src
标记的<img>
属性的正确路径,该属性引用存储在C#项目资源文件夹中的图像。 (构建操作:内容。复制到输出目录:如果更新则复制)
我有一个RESTFUL服务,根据URL中的id,将生成发票PDF。为了生成PDF,该服务使用Handlebars.Net为发票生成HTML,并使用Select.HtmlToPdf将该HTML转换为PDF。
当我浏览代码时,使用Select.HtmlToPdf生成PDF的项目似乎有一个C:\Program Files (x86)\IIS
的当前工作目录。 (我发现通过设置快速监视:System.IO.Directory.GetCurrentDirectory()
。
生成的PDF不显示我想要显示的图像。我在控制台应用程序中按预期完成了这项工作,因此我怀疑问题是我在HTML中传入src
参数的路径对于此项目是不正确的。
构建时,我可以在\bin\Resources\
中看到图像文件。我应该传递到该src
标记的<img>
属性的图像资源的相对路径是什么?
更新05/16
我没有生成PDF,而是让我的控制器将HTML返回给浏览器以查看它是否能正确显示。它做了。在这种情况下,src
代码的<img>
属性为\Resources\image.png
。看起来,当浏览器通过调用<baseurl>\Resources\image.png
来获取图像时,控制器会正确转换该路径。
所以我的问题是Select.HtmlToPdf没有发出Web请求来获取图像,它将src
参数作为它需要加载的图像文件的本地路径,所以我需要找到一种方法来通过IIS环境设置的虚拟目录访问我的bin目录的Resources文件夹。