2017-12-26 60 views
0

저는 Laravel 5.5와 협력하고 있습니다. 내 프로젝트를 서버에 업로드했습니다. 하지만 내 프로젝트가 괜찮 로컬 서버 작동 오류가있어.클래스가 없습니다. [Laravel 5.5, production project]

Class 'App\Models\Textbox\TextBox' not found Symfony\Component\Debug\Exception\FatalThrowableError

나는 단지 composer dump-autoload을 실행하고 잘 작동합니다. 하지만 주요 문제는 주최 서버가 bluehost/cpanel입니다. 쉘이있는 명령을 실행할 수 없습니다. 이유는 계정이 아니기 때문에 귀하의 계정이 확인되지 않았습니다.이 작업을 수행 할 수 없습니다.

하지만 대체 솔루션을 찾아 로컬 서버에 dump-autoload을 실행 한 후이 폴더를 서버에 업로드하면됩니다.

\bootstrap 
\vendor\composer 

하지만 작동하지 않습니다. 마지막으로 나는 vendor 폴더를 모두 업로드하고 결과가 나타나지 않습니다.

dump-autoload 서버 만 실행해야합니까 commandline/bash?
commandline 쿼리를 서버에서 실행하지 않고도이 문제를 해결할 수 있습니까?

P. 나는 구글에서 솔루션 관련 모든 질문 모두를 보았다하지만 난 일 :(하기에 준비 할 수 없습니다

이 내 폴더 구조 : 클래스의

enter image description here enter image description here

+0

모델의 올바른 경로를 설정합니다. TextBox –

+0

"path"는 무엇을 의미합니까?, 모든 경로는 정확합니다. – rufatZZ

+0

는 App \ Models \ Textbox \ TextBox를 사용하는 것처럼 파일 상단에 TextBox를 선언합니다. 이 경로를 수정하십시오. –

답변

5

마음 케이스 . 보시다시피 이름

당신이 얻을 오류 :

App\Models\Textbox\TextBox 

하지만 클래스 이다 : 그래서

App\Models\TextBox\TextBox 

당신이 디렉토리를 참조로/네임 스페이스

작곡가 자동 로딩이 유효한 경우와 동일한 클래스 이름과 디렉토리가하는이 중요 (당신이 PSR-4를 사용하지만이 가정은 자본 B.에있다 Laravel의 기본값). 윈도우 파일/디렉터리 경우에

이 문제 때문에 더 Textbox 디렉토리가없는 리눅스 서버에는 TEXTBOX 디렉토리가 없습니다 (TEXTBOX 디렉토리 textbox과 동일 Windows 용),하지만 또한 네임 스페이스 텍스트 상자를 쓸 수 있습니다하지 않습니다 - TextBox 디렉토리 만 있으므로 클래스를 자동로드 할 수 없으므로 프로덕션 환경에서 오류가 발생하고 localhost에서 제대로 작동합니다.

+2

네임 스페이스는 여전히 소문자로 선언 될 수 있습니다. Windows 시스템에서 개발할 때 파일 시스템은 대소.자를 구분하지 않지만, Linux 시스템에 전개 할 때 폴더 이름의 대소.자를 철자해야합니다. –

+0

@JonasSchwabe 정말요? 좋은 지적 주셔서 감사합니다. 나는 그것에 대해 모른다. 그래, 난 아무 문제없이 로컬 서버 에서이 프로젝트를 실행하지만, 서버가 나를 위해 몇 가지 문제를 만들었 :) – rufatZZ