IIS exibindo página de forma diferente quando localhost é usado em URL vs. hostname

8

Estou tendo (ainda outro) problema estranho com o IIS. Ao visualizar uma página ASPX que projetei em minha máquina local navegando até http://localhost/page.aspx , a página parece conforme o esperado (e parece o mesmo no IE, Firefox e Chrome. Se eu alterar localhost para my_hostname , a página será renderizada com uma barra de rolagem vertical desativada.

O comportamento foi notado pela primeira vez quando publiquei meu site em nosso servidor ativo e vi a mesma discrepância. Depois de bater a cabeça contra a parede, tentei o que descrevi acima e consegui duplicar o meu "problema". Então, com isso, eu me volto para vocês.

Isso não seria realmente um problema (salvo a inconsistência entre navegadores), exceto que isso estraga uma posição "absoluta" <div> movendo-a parcialmente para fora da tela em vez de ficar centralizada como deveria ser (e é quando visualizado de qualquer outra forma exceto no IE quando o endereço é qualquer coisa, exceto localhost).

Como outro teste, adicionei uma nova página aspx ao meu projeto e não adicionei ou alterei nenhum código padrão. Se eu navegar para a página usando localhost, não há barra de rolagem. Se eu navegar até a página usando my_hostname, a barra de rolagem estará lá. Seja qual for a diferença, é fazer com que o processamento de CSS do IE seja arruinado, a ponto de, no começo, tudo funcionar da mesma maneira em todos os navegadores nos quais estou testando, e depois o IE cria suas próprias regras. Isso é incrivelmente frustrante e eu estou realmente esperando que eu esteja apenas fazendo algo errado e não é um problema inerente.

    
por maik 17.05.2010 / 20:57

6 respostas

9

Eu sei que este é um tópico antigo, mas acabei de encontrar o mesmo problema. Se você estiver usando o IE8, o problema pode ser sua exibição de compatibilidade. Por padrão, os sites em sua intranet local - mas NÃO localhost - são renderizados na exibição de compatibilidade do IE7. Mais informações aqui:

link

Infelizmente, isso não ajuda a se livrar da barra de rolagem desativada, mas explica a discrepância.

    
por 27.10.2010 / 20:53
7

O problema reside nas configurações de exibição de compatibilidade do IE8. Por padrão, os sites da intranet (seu servidor) são exibidos na visualização de compatibilidade. Para substituir esse comportamento, você deve adicionar o seguinte código ao seu código por trás da sua página aspx.

protected override void OnPreInit(EventArgs e) {
    Response.AddHeader("X-UA-Compatible", "IE=8");       

    base.OnPreInit(e);
}

Funcionou para mim.

    
por 16.03.2011 / 10:20
2

No IE9, os sites em execução em localhost são renderizados automaticamente no Modo Compability. Para alterar esse comportamento (padrão), faça isso:

  1. Se não estiver ativado, ative o comando da barra de ferramentas
  2. Clique em Página > Configurações para Compabilitymode
  3. Desmarque a opção "Mostrar intranetsites em compabilitymode"
por 11.01.2013 / 12:15
1

Aqui está uma publicação no StackOverflow sobre isso

basicamente altere a parte superior do layout HTML ou MasterPage (depois de <%@...%> ) para:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    
por 18.03.2013 / 17:07
0

O CSS não deve ser afetado pelo URL. Alguma chance de você ter escondido o texto com o URL em algum lugar do corpo que está causando a mudança? Se você visualizar a origem do arquivo em ambas as situações usando uma ferramenta como o link , há algo diferente entre eles?

    
por 19.05.2010 / 15:11
0

A correção que a @Claire aplica ao IE 11 também. Eu estava tendo problemas em que o css não estava sendo aplicado ao acessar o site por meio do nome do host do servidor, mas o host local era exibido corretamente.

Para corrigir:

Internet Options -> Uncheck Display intranet sites in Compatibility View

Não sei por que localhost não é considerado um site da intranet .

    
por 07.08.2018 / 16:42

Tags