如何从CSS引用嵌入的图像?

时间:2009-07-28 21:08:15

标签: c# .net css embedded-resource

我有一个嵌入在程序集中的CSS文件。我需要使用此CSS文件为某些元素设置背景图像,并且图像也需要是嵌入式资源。这可能吗?有什么方法可以做到这一点吗?

我在将现有样式表放入此dll时遇到了问题,然后意识到图像没有显示出来。我不知道有什么方法可以使它工作,因为我需要知道嵌入图像的URL。

有人做过这样的事吗?

4 个答案:

答案 0 :(得分:52)

<% = WebResource("image1.jpg") %>

您可以在CSS文件中使用以上语句,并在注册CSS时使用 WebResourceAttribute,您可以将“PerformSubstitution”设置为true

Default.css
body{
    background: <%=WebResource("xyz.jpg")%>
}



[assembly, WebResource("Default.css","text/css", PerformSubstitution=true)]
[assembly, WebResource("xyz.jpg","image/jpg")]

答案 1 :(得分:6)

只需按照以下步骤将网络资源引用为CSS中的背景图片

  1. 将图片网址指定为“background:url('&lt;%= WebResource(”xyz.jpg“)%&gt;');”以下列方式。

    Default.css
    body{
          background: url('<%=WebResource("xyz.jpg")%>');
        }
    
  2. 在AssemblyInfo.cs文件中,按以下方式注册带有“PerformSubstitution = true”属性的CSS文件

    [assembly, WebResource("Default.css","text/css", PerformSubstitution=true)]
    
  3. 现在再次在AssemblyInfo.cs文件中将图像文件注册为

    [assembly, WebResource("xyz.jpg","image/jpg")]
    
  4. 右键单击图像文件(xyz.jpg)和CSS文件(Default.css),然后单击属性,选择“构建资源”选项作为“嵌入式资源”。

  5. 并完成了。 快乐的编码!!!

答案 2 :(得分:4)

我的其他建议略有不同,但它适用于我的ASP.NET页面中的内联CSS

  1. 将以下条目添加到AssemblyInfo.cs文件 - [assembly: WebResource("MyImageFile.png", "image/png")]
  2. 在CSS中添加以下代码以引用嵌入资源 - background-image: url('<%= Page.ClientScript.GetWebResourceUrl(typeof(MyUserControl), "MyImageFile.png") %>')

答案 3 :(得分:0)

通过Web服务公开资源怎么样? 比如在CSS文件中,设置background: url( getImage.aspx?image=newyork.jpg )