Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

danielvlopes

Problema com imagens em include

Recommended Posts

Olá... Estou desenvolvendo um site que será bem grande. Desenvolvi o css e o html previamente depois dividi tudo em arquivos separados para poder fazer o include desses arquivos em todas as páginas, porém como o site terá várias páginas eu estou dividindo as páginas em algumas pastas diferentes porem como o path das imagens, css e js dos arquivos que eu do include está apontado como se a página estivesse no raiz por isso estou tendo problema com o path das coisa que estão dentro dos arquivos que dou include.Alguem pode me sugerir alguma alternativa para este problema? <_< <_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensei em usar o caminho absoluto das imagens, css e js que chamo nos arquivos que dou include, essa seria uma boa opção?

Olá, espero poder ajudar.Para você não se confundir, todas as páginas que você colocar um include, para incluir outras páginas, você vai usar, tanto no include como na página o caminho absoluto de tudo o que você for fazer.Por exemplo: \tpl_minhas_imagens.php\informacoes\inc_pagina_imagens.php\img\daniel.jpgQuando você for incluir o documento "\informacoes\inc_pagina_imagens.php" dentro de "\tpl_minhas_imagens.php" e tentar pegar uma imagem do diretório "\img", você não precisará no inc_pagina_imagens.php 'descer' um nível para poder pegar sua imagem, pois este estará incluido dentro de tpl_minhas_imagens.php, é por este último que você se guiara para 'pegar' suas imagens, ou seja, é só subir um nível até '\img' e incluir sua imagem.Compreendeu?É isso ae, qualquer dúvida envie um e-mail ou post aqui novamente.Abraços,Leonardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi cara... Pelo que vi desta forma eu vou ter voltar concertando o path de tudo do mesmo jeito não? Só que ao invés de descer vou ter que subir. Oque to fazendo é usar o caminho absoluto mesmo, tipo www.site.com.br/tpl... só que acho isso meio gambiarra que toda vez que eu for jogar do servidor para net tenho que substituir de localhost para o dominio do cliente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No lugar de usar o domínio, experimente usando o diretório raiz, com $_SERVER['DOCUMENT_ROOT']. ;)

Dê uma olhada também na diretiva INCLUDE_PATH, que pode ser modificado por ini_set(). Recomendo também a leitura deste artigo, que mostra um exemplo de arquivo de inicialização para sistemas.

 

[]s

Anderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa ideia, não tinha pensado nisso, vou fazer assim... mas aqui eu sei que não tem nada a ver com o forum mas e por exemplo como eu faria eu também em java script... pegar o documentroot.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou fazendo da seguinte forma... como tenho link também no menu preciso que funcione com o endereço http do servidor ai estou usando assim require('http://'.$_SERVER['SERVER_NAME'].'/site_novo/templates/head.php')acho que é uma boa solucação

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que nos arquivos que dou include tem links dentro deles, imagens e tudo com path relativo se eu der include neles desse jeito vai dar pau no links e imagens pq vai ser interpretado de forma errada. Outra coisa, eu tenho que chamar o ini_set toda vez antes que eu der include em alguma coisa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto seria você ter um arquivo para inicialização. Este estaria incluso em todas as páginas e faria a chamada e alteração no caminho de includes com ini_set.

Compartilhar este post


Link para o post
Compartilhar em outros sites

e quanto ao fato de dentro dos meu arquivos que estou dando include conterem imagens e links com caminho relativo, se o arquivo que vai chamar estes includes estiver dentro de uma outra pasta vai dar pau não? Entendeu minha duvida?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que te entendi sim, Daniel. Vamos lá: num arquivo de inicialização você pode, além de definir a INCLUDE_PATH, definir constantes para os diretórios. Assim você terá uma constante que aponta para o diretório das imagens, CSS, JS, funções, classes e qualquer outra divisão que você tenha feito. Então nos links você não utiliza o caminho relativo, mas a constante que aponta para o diretório. Entendeu?Se você leu o artigo que te sugir num dos primeiros posts, acredito que fica claro pra entender ao que me refiro.Mas qualquer coisa, posta aí ;)[]sAnderson Mello

Compartilhar este post


Link para o post
Compartilhar em outros sites

Saquei cara, essa pode ser uma boa solução mas o unico problema é que vou ter que abrir um <?PHP em tudo que eu for fazer, até mesmo uma imagem ou link vão ter que ser precedidos em com <?PHP, oque acho que não deixa o codigo muito elengante. Estou pensando em resolver este problema com ajax, por exemplo normalmente o conteudo da pagina é sempre exibido no mesmo lugar e uma parte fica fixa, então acho que esse conteudo pode ser buscado por uma função ajax e escrita dentro de um div. Mas o problema é que se não tiver suporte a ajax já era, por isso não sei qual a melhor solução. Oque vcs acham?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou tentando usar a ini_set mas ta dando pau... a Sintaxe que estou usando é esta:ini_set("include_path", "/site_novo/includes/");e nas página estou chamando assim:<?php include('head.php') ?>Mas ta dando pau:Warning: main(head.php) [function.main]: failed to open stream: No such file or directory in /home/pacobike/public_html/site_novo/index.php on line 2Warning: main(head.php) [function.main]: failed to open stream: No such file or directory in /home/pacobike/public_html/site_novo/index.php on line 2Warning: main() [function.include]: Failed opening 'head.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/pacobike/public_html/site_novo/index.php on line 2Warning: main(cabecalho.php) [function.main]: failed to open stream: No such file or directory in /home/pacobike/public_html/site_novo/index.php on line 9Warning: main(cabecalho.php) [function.main]: failed to open stream: No such file or directory in /home/pacobike/public_html/site_novo/index.php on line 9Warning: main() [function.include]: Failed opening 'cabecalho.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/pacobike/public_html/site_novo/index.php on line 9Warning: main(menu_prod.php) [function.main]: failed to open stream: No such file or directory in /home/pacobike/public_html/site_novo/index.php on line 12Warning: main(menu_prod.php) [function.main]: failed to open stream: No such file or directory in /home/pacobike/public_html/site_novo/index.php on line 12Warning: main() [function.include]: Failed opening 'menu_prod.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/pacobike/public_html/site_novo/index.php on line 12

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.