2013-05-08 2 views
1

나는 나의하는 error.log에 이러한 메시지를 얻을 :MissingControllerException 디렉토리는/

Request URL: /files/thumbs1/1354046882.jpg 
Stack Trace: 
#0 /path/to/web/app/webroot/index.php(92):  Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse)) 
#1 {main} 
2013-05-08 13:44:16 Error: [MissingControllerException] Controller class  FilesController could not be found. 
Exception Attributes: array (
    'class' => 'FilesController', 
    'plugin' => NULL, 
) 

이미지 파일 /files/thumbs1/1354046882.jpg가 존재 표시됩니다. 그러나 이것과 별개로 나는 error.log에 Error를 얻는다. 이 같은 뷰 .ctp에 수동으로 실시 URL을 생성 :

<img src="/files/thumbs1/1354046882.jpg" alt=""> 

내가 는 $ this->, HTML> 이미지 ('cake_logo.png', 배열 ('고도'를 에코 사용하지 않는 => 'CakePHP'));

Webroot의 "files"디렉토리가 컨트롤러로 식별되지 않도록 ControllerException을 어떻게 추가 할 수 있습니까? 나는 FilesController가 없다. "file"이 CakePHP에서 사용되어서는 안되는 보호 된 단어 일 가능성이 있습니까? 지금까지 CakeBook과 관련된 뭔가를 찾을 수 없었습니다.

<IfModule mod_rewrite.c> 
    RewriteCond %{HTTP_HOST} !www.domainname.com 
    RewriteRule (.*) http://www.domainname.com/$1 [R=301,L] 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 

의 htaccess로/웹 루트는 내가 CakePHP는 2.3 updatet. 도움 주셔서 감사합니다.

+0

오류가 발생하는 URL을 어떻게 작성하고 있습니까? 해당 코드로 질문을 업데이트 할 수 있습니까? – Nunser

+0

파일 생성 방법에 대한 질문을 코드로 업데이트했습니다. – mart

+0

원래'.htaccess'를 사용하고 있습니까? 또는 해당 항목을 수정 했습니까? 예 :다시 쓰기 설정을 가상 호스트로 옮겼습니다)? – thaJeztah

답변

-1

이전에는 이와 같은 문제가있었습니다. 기본적으로 파일이 누락되었다고 말하는 것입니다. 그 이외의 오류는 실제로 없습니다. 찾을 수없는 파일을 수정하면 사라져야합니다.

+0

파일을 찾을 수 없습니다. 그것은 존재합니다. 그러나 CakePHP는 컨트롤러가 있어야한다고 "생각합니다". 그것이 문제이다. – mart

0

.htaccess에 규칙을 추가하면/files /로 시작하는 요청 URL이 index.php로 라우팅되지 않습니다. 내가 제대로 모든 것을 이해하면 보조 노트에

는 유일한 문제는 바로 URL을 작성하지 않고, 누락 된 파일 :

+0

고마워요, 제발 저에게 예를 들어 주시겠습니까? – mart

+0

요청이 여전히 cakephp로 전달되는 파일이 있다고합니다. .htaccess의 기본 다시 쓰기 규칙으로는 불가능합니다. '/ files/thumbs1/1354046882.jpg' 경로가 웹 루트에 존재하고 웹 서버가 파일을 읽을 수있는 경우 웹 서버 자체에서 서비스해야합니다. – ADmad

+0

감사합니다. 어딘가에 다시 쓰기 규칙에 문제가있는 것처럼 보이지만 지금까지 찾을 수 없습니다. – mart

0

에 URL을 생성하지 않으려 고.

내가 여기 몇 가지 가정거야 : 폴더 '구조는

/app 
    /Config 
    /Console 
    ... 
    /webroot 
     /files 
/lib 
/plugins 
/vendors 

와 비슷한은 당신이 원하는 것은 바로,이 디렉토리에 파일에있는 이미지를 보여주는 것입니다입니까?

그런 다음 get your paths right으로해야합니다. 이은 (당신이 다음

files/something/something-else 

케이크 그냥 좋아,이 경로가 컨트롤러/액션/PARAMS은 "생각하는 것입니다 URL의 유형, 웹 루트에있는 파일을 원하는 케이크를 말하지 않는 경우 generalization, 명확하게이 가정은 routing으로 수정 될 수 있습니다. "), 파일이 컨트롤러가 아니기 때문에 실패합니다.

그래서이 문제를 해결하려면 webroot 디렉토리에서 무언가를 가리키고 싶을 때마다 경로에 추가하십시오. 당신이해야 할 것입니다

<img src="<?php echo $this->webroot; ?>files/thumbs1/1354046882.jpg" alt=""> 

그리고 만약 파일이 오류없이 표시되어야합니다.

+0

나는 그것을 시도 할 것이다, 고마워. – mart

관련 문제