Usuário com melhor resposta
Alteração na MasterPage não reflete nas páginas filhas no Browser

Pergunta
-
Olá pessoal,
Estou desenvolvendo meu primeiro sistema web. Estou utilizando MasterPage já que o sistema utiliza várias telas iguais, muda apenas o conteúdo. Quando faço uma alteração na masterpage, em modo de projeto dentro do visual studio 2010, as páginas filhas são atualizadas, porém quando executo no browser, as alterações feitas na masterpage não são refletidas nas páginas filhas. Estou utilizando CSS.
Alguma dica de como resolver isso?
Estrutura de pastas dentro da raiz.
Style = arquivos css
MasterPages = Páginas masterspages
Forms = Páginas filhas derivadas das masterpages
Respostas
-
Ricardo value pela dica.
Acabei descobrindo o problema. No meu arquivos .CSS eu havia colocado:
font:24px #FFFFFF;
No Visual Studio o Design reconheceu, mas nos browsers não. Mudei para:
font-size:24px; color:#FFFFFF;
Marinheiro de primeira viagem. Obrigado a todos
- Marcado como Resposta Reuber terça-feira, 17 de abril de 2012 12:23
Todas as Respostas
-
-
Olá Onofre
Segue código da página filha;
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/Principal.Master" AutoEventWireup="true" CodeBehind="Principal.aspx.cs" Inherits="Lawyer.Web.Forms.Principal" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <p> Colocando texto de exemplo </p> <p> </p> <p> </p> </asp:Content>
segue código da MasterPage
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="principal.master.cs" Inherits="Lawyer.Web.Forms.principal" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <link href="../Styles/principal.css" rel="stylesheet" type="text/css" /> <head runat="server"> <title></title> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <div id="box"> <div id="topologo"> logo </div> <div id="topo"> Sistema Integrado de Controle de Processos </div> <div id="topomenu"> Menu do sistema </div> <div id="conteudo"> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> <div id="clear"> </div> <div id="rodape"> texto de conteúdo do rodape </div> </div> Copyright 2012 - empresa teste - Todos os direitos reservados </form> </body> </html>
Arquivo css
body{background:#999999; margin:2px; padding:10px; font-family:Arial, Verdana, Tahoma; font-weight:bold; text-align:center; background-image:url(fundo1.jpg); background-repeat:repeat-x; font-size:10px; color:#FFFFFF} #box{width:900px; border:1px solid #FFFFFF; background:#FFFFFF; color:#000000; font-weight:normal; font-size:10px; padding:8px; text-align:left; margin:0 auto;} #topologo{height:80px; width:100px; border:1px solid #FFFFFF; text-align:center; background:#279B61; float:left; color:#FFFFFF; padding:5px;} #topo{height:80px; border:1px solid #FFFFFF; text-align:center; font:24px #FFFFFF; padding-top:40px; background:#279B61; color:#FFFFFF; padding:5px;} #topomenu{height:30px; border:1px solid #FFFFFF; text-align:justify; background:#000010; color:#FFFFFF; padding:5px;} #conteudo{/*width:695px;*/ height:450px; border:1px solid #000000; text-align:justify; background-image:url(..\images\Fav3.gif); background-repeat: no-repeat; background-position:center; /*background:#3F5D7D;*/ color:#FFFFFF; /*float:right;*/ padding:5px;} #rodape{height:30px; border:1px solid #FFFFFF; text-align:justify; background:#95CAE4; color:#FFFFFF; padding:5px;} #clear{clear:both;}
-
Segue algumas considerações:
Colocar o link css dentro da tag head:
<head runat="server"> <title></title> <link href="../Styles/principal.css" rel="stylesheet" type="text/css" /> </head>
Refrenciar o link com: ~
<link href="~/Styles/principal.css" rel="stylesheet" type="text/css" />
Certificar-se de que o caminho e nome do css estão ok.
Finalmente coloque o css na raiz e faça a referencia direta, só para comporvar que esta funcionando.
Tive um problema parecido com este é era porque a página estava em cache no IExplorer 9. Então limpei e configurei o cache e resolveu.
Ninguém falou que seria fácil!
-
Fiz as recomendações sugeridas, porém não resolveu.
Coloquei todos os arquivos na raiz, limpei o cache de todos os navegadores e mesmo assim as alterações não refletem nas páginas filhas. E olha que eu só havia alterado o tamanho da fonte no arquivo css.
-
Só confirmando:
Vc referenciou o css que esta na raiz dentro da tag head da seguinte forma?
<head runat="server"> <title></title> <link href="principal.css" rel="stylesheet" type="text/css" /> </head>
Vc esta rodando o site viaF5 ou publicou o site?
O erro ocorre em todos os browsers?
Outras considerações:
Renomei o css que vc este utilizando e verifque se vai afetar a página!
Crie na raiz outro css bem simples e faça referência a ele e teste se vai funcionar!
No post http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/f115483d-b727-4830-82ed-577dbbc98b81
existe a seguinte sugestão:
<link type="text/css" rel="stylesheet" href='<%= Server.ResolveClientUrl("~/common/css/global.css") %>' />
Ninguém falou que seria fácil!
-
Boa Tarde,
Como o amigo jothaz falou, certifique-se que o CSS está sendo "lincado" dentro do Head, só assim para os Browsers reconhecerem e outra dica, no seu CSS procure sempre zerar as bordas, paddings e margins, assim evita problemas entre os navegadores. Segue exemplo:
/*Inserir no seu arquivo principal.css da master*/ *{border:none;margin:0;padding:0;} html,body,form{width:100%;height:100%;}
Isso garante que a visualização nos diversos browsers, seja a mesma, pq cada um lida com bordas, margins e paddings de maneira diferente.
Espero ter ajudado.
Abcs
-
Ricardo value pela dica.
Acabei descobrindo o problema. No meu arquivos .CSS eu havia colocado:
font:24px #FFFFFF;
No Visual Studio o Design reconheceu, mas nos browsers não. Mudei para:
font-size:24px; color:#FFFFFF;
Marinheiro de primeira viagem. Obrigado a todos
- Marcado como Resposta Reuber terça-feira, 17 de abril de 2012 12:23