2012-06-23 47 views
13

Ésta es una simple página web en ASP.NET con C# utilizando VS 2010. He siguiente estructura de directorios para este proyecto:página ASP.NET no se está cargando estilos CSS

enter image description here

La página de inicio es Default.aspx y se carga perfectamente Pero cuando abro la página Interface/SystemAdminLogin.aspx desde la página predeterminada, se carga sin estilos CSS. He importado hojas de estilo CSS en la página maestra. Aquí es como soy referenciación archivo MasterPage en ambos archivos .aspx:

Default.aspx:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

SystemAdminLogin.aspx:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="SystemAdminLogin.aspx.cs" Inherits="_Default" %> 

no veo ningún error con mi código, pero la razón por página en la carpeta de Interfaz no está cargando estilos CSS? Por favor ayuda.

Aquí es el código de la página principal, donde Estoy importando archivo css:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<title>Facial Recognition Bank System</title> 
<meta name="keywords" content="" /> 
<meta name="description" content="" /> 
<link href="Styles/style.css" rel="stylesheet" type="text/css" media="screen" /> 
<asp:ContentPlaceHolder ID="HeadContent" runat="server"> 
</asp:ContentPlaceHolder> 
</head> 

Y aquí es la parte del código del archivo CSS:

body { 
margin: 0; 
padding: 0; 
background: #fff url(../images/img01.jpg) repeat-x left top; 
font-family: Arial, Helvetica, sans-serif; 
font-size: 12px; 
color: #000; 
} 
+2

pegue la parte del archivo de página principal, donde el css está vinculado –

+0

¿Está utilizando IIS? –

+0

Puede que le resulte más fácil utilizar los temas de ASP.Net: esto se encargará de todo esto por usted. Consulte http://stackoverflow.com/a/8564035/1073107 o la página de MSDN http://msdn.microsoft.com/en-us/library/ykzx33wh.aspx – dash

Respuesta

21

Las hojas de estilo incluidos en su página maestra están utilizando caminos relativos.

especificar sus enlaces de hojas de estilo con runat=server y el prefijo con la ruta raíz Web virtual (~):

<link href="~/Styles/style.css" rel="stylesheet" type="text/css" media="screen" runat="server" /> 

O:

<link href="/Styles/style.css" rel="stylesheet" type="text/css" media="screen" runat="server" /> 

Pero hay que tener en cuenta que se recomienda la primera opción. El segundo no funcionará cuando publique su sitio en un directorio virtual .

Después último comentario ...

de la URL de la imagen en CSSs debe ser actualizado, así, con el fin de no utilizar rutas relativas o realizar cualquier traspaso de rutas (../).

background: #fff url (images/img01.jpg) repeat-x left top;

Para esta opción, deberá mover la carpeta de imágenes dentro de la carpeta Estilos (es una buena práctica hacerlo).

actualización final:

Parece que el elemento head también necesita ser runat=server a fin de que las rutas relativas ASP.NET (~) para trabajar dentro de link elementos con runat=server.

+0

He agregado el código de la página maestra en mi publicación. – Azeem

+0

Respuesta actualizada. –

+0

Hola, cuando utilicé la primera opción, Default.aspx no está cargando estilos CSS también ... He agregado parte del código CSS en la publicación. Por favor mira en ello. gracias – Azeem

0

Pruebe con (~ en su ruta):

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<title>Facial Recognition Bank System</title> 
<meta name="keywords" content="" /> 
<meta name="description" content="" /> 
<link href="~/Styles/style.css" runat="server" rel="stylesheet" type="text/css" media="screen" /> 
<asp:ContentPlaceHolder ID="HeadContent" runat="server"> 
</asp:ContentPlaceHolder> 
</head> 
+0

Eso no funcionará. El elemento 'link' debe estar con' runat = server' para que las rutas virtuales ASP.NET funcionen. –

+0

sí @el coon tiene razón. El ~ NO funciona con o sin el atributo de servidor runat ... – Azeem

+0

Sí, eso es verdad –

0

Esto funciona para mí en mis páginas maestras:

<asp:content ID="xContent" ContentPlaceHolderID="headContent" runat="server"> 
<link rel="stylesheet" type="text/css" href="<%=Request.ApplicationPath%>Folder/Folder/Filename.css" /> 
</asp:Content> 
1

Esto funciona para mí en mis páginas maestras:

<asp:content ID="xContent" ContentPlaceHolderID="headContent" runat="server"> 
<link rel="stylesheet" type="text/css" href="<%=Request.ApplicationPath%>Folder/Folder/Filename.css" /> 
</asp:Content>' 
+0

¡Gracias! Pasé horas intentando obtener un archivo CSS personalizado para trabajar en mi módulo DNN, ¡y esto es lo único que he encontrado que no incluye incluir el CSS en las etiquetas