2009-07-28 12 views
32

Tengo un archivo CSS que está incrustado en mi ensamblaje. Necesito establecer una imagen de fondo para ciertos elementos usando este archivo CSS, y la imagen también debe ser un recurso incrustado. es posible? ¿Hay alguna forma en que pueda hacer esto de manera confiable?¿Cómo hacer referencia a imágenes incrustadas desde CSS?

Me encontré con el problema al poner una hoja de estilos existente en este archivo dll y luego las imágenes realizadas no se mostraban. No sé de ninguna manera para hacerlo funcionar porque necesitaría saber la URL de la imagen incrustada.

¿Alguien ha hecho algo como esto?

Respuesta

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

Se puede utilizar por encima de la declaración dentro de su archivo CSS, y mientras se registra el CSS con WebResourceAttribute, se puede establecer "PerformSubstitution" true

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



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

funcionó a la perfección! muchas gracias –

+8

Te votaría 100 veces por esto si pudiera :) –

+9

Encontré al usar la imagen de fondo en lugar del fondo que necesitaba para envolver la etiqueta del servidor WebResource con url (''). P. ej. background-image: url ('<% = WebResource ("xyz.jpg")%>'); –

0

¿Qué tal exponer los recursos a través de un servicio web? Como en el archivo CSS, establezca background: url(getImage.aspx?image=newyork.jpg)?

+0

Esta es una buena idea, excepto que el recurso está incrustado en nuestra biblioteca común, no en una aplicación web. Así que desafortunadamente esto no funcionará para mí en esta situación. –

+0

Luego, haga referencia a la biblioteca común desde una nueva aplicación web, ¿quién es el único responsable de extraer recursos incrustados de la biblioteca común? – maxwellb

4

mía es una ligera variación en el otro sugerencias pero funciona para mi CSS en línea dentro de mi página ASP.NET

  1. añadir la siguiente entrada al archivo AssemblyInfo.cs - [assembly: WebResource("MyImageFile.png", "image/png")]
  2. añadir el siguiente código dentro de la CSS para hacer referencia al recurso incrustado - background-image: url('<%= Page.ClientScript.GetWebResourceUrl(typeof(MyUserControl), "MyImageFile.png") %>')
6

sólo tienes que seguir los siguientes pasos para referir a un recurso web como fondo de la imagen en CSS

  1. Consulte URL de la imagen como " fondo: url ('<% = WebResource ("xyz.jpg")%>'); " de la siguiente manera.

    Default.css 
    body{ 
         background: url('<%=WebResource("xyz.jpg")%>'); 
        } 
    
  2. En AssemblyInfo.cs presentar registrar el archivo CSS con "PerformSubstitution = true" atributo de la siguiente manera,

    [assembly, WebResource("Default.css","text/css", PerformSubstitution=true)] 
    
  3. Ahora de nuevo en AssemblyInfo.cs banco de registros del archivo de imagen como

    [assembly, WebResource("xyz.jpg","image/jpg")] 
    
  4. Haga clic derecho en el archivo de imagen (xyz.jpg) y el archivo CSS (Default.css) y haga clic en Propiedades ahora seleccione la opción "Crear recurso" como " Recurso incrustado ".

y listo. Happy Coding !!!

Cuestiones relacionadas