Pergunta

Estou tentando vincular a uma folha de estilo no meu arquivo de cabeçalho usando $ _server ["document_root"] da seguinte forma:

<head>
    <?php
        print "<link href='".$_SERVER["DOCUMENT_ROOT"]."/include/style.css' rel='stylesheet' type='text/css' />";
    ?>
    <title>eLMS</title>

</head>

Como estou testando localmente, estou conseguindo o caminho como:

<head>
    <link href='C:\Users\wretrOvian\Documents\eLMS\site/include/style.css' rel='stylesheet' type='text/css' />      <title>eLMS</title>

</head>

E isso não está se renderizando no Firefox. Isso acontece no IE, no entanto. Este é obviamente um problema de validação. Mas tentei o mesmo código em um servidor - com os mesmos resultados. :(

Como faço para consertar isso? O produto final pode ou não ser executado em um servidor local, então preciso que o código seja flexível.

Estou usando o Abyss Web Server X1 com Php 5.2.8

Devo usar caminhos absolutos - porque não quero copiar a pasta incluir todos os subdiretores do aplicativo. Eu preciso poder me referir a ele de todos os locais.

Foi útil?

Solução

Basta usar isso:

<head>
    <link href='/include/style.css' rel='stylesheet' type='text/css' />
    <title>eLMS</title>
</head>

Ou, se for usado localmente:

<head>
    <link href='../include/style.css' rel='stylesheet' type='text/css' />
    <title>eLMS</title>
</head>

A raiz do documento é apenas para uso interno (dentro do PHP), não para o seu HTML.

Outras dicas

Tente usar:

$_SERVER['HTTP_HOST']

Não use um caminho absoluto do sistema de arquivos, use um caminho em relação a (mas não incluindo) a raiz do documento. Neste caso apenas /include/style.css.

Para usar arquivos locais do navegador, use o file esquema.

file://C:/dir/file.ext
file:///dir/file.ext

Não tenho certeza se você precisa de duas ou três barras, provavelmente duas no Windows com a letra de acionamento, três no *nix com a barra de raiz, embora eu pareça me lembrar de ter visto três barras com a letra de acionamento. Tente! : P

Tente usar o DIRECTORY_SEPARATOR constante. Ele retorna nos sistemas Windows e / em sistemas nix.

Primeiro de tudo, a raiz do documento é literalmente o diretório em que o servidor da web está localizado. Você geralmente não deseja usar isso com qualquer conteúdo na web. Use / em vez disso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top