Laravel 5 변경 public_path()
이동하려고 합니다.public
폴더를 다른 곳으로 이동합니다.하지만 수정할 장소를 찾을 수 없습니다.public_path()
변수.이제 'public_path()'는 폴더의 잘못된 경로를 반환합니다.
어디서 변수를 설정할 수 있습니까?public_path()
?
ioc 컨테이너를 사용하여 공용 경로를 재정의할 수 있습니다.
저에게 완벽하게 작용한 것은 다음과 같습니다.public/index.php
다음 세 줄
$app->bind('path.public', function() {
return __DIR__;
});
승인된 답변은 HTTP에서 오는 요청에 대해 작동하지만, 다음에 대해서는 작동하지 않습니다.artisan
.
필요하시면artisan
사용자 지정 공용 경로를 알기 위해서는 Laravel 메인 Application 클래스를 확장해야 합니다.무섭게 들리겠지만, 사실 아주 간단해요.
다음만 수행하면 됩니다.
1단계: 파일에서:bootstrap/app.php
의 첫번째 선언을 고치다$app
변수
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
사용자 정의 애플리케이션 클래스를 반영합니다.
$app = new App\Application(
realpath(__DIR__.'/../')
);
2단계: 사용자 정의 애플리케이션 클래스를 어딘가에 정의합니다.예를 들어 에app/Application.php
<?php namespace App;
class Application extends \Illuminate\Foundation\Application
{
}
축하합니다.Laravel core Application 클래스를 확장했습니다.
3단계: 덮어쓰기publicPath
방법.Laravel의 원래 메서드를 새 클래스에 복사하여 붙여넣고 필요에 따라 변경합니다.저의 특별한 경우에 저는 이렇게 했습니다.
public function publicPath()
{
return $this->basePath.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'public_html';
}
그거에요!Application 클래스의 모든 메서드를 동일한 방식으로 덮어쓸 수 있습니다.
추가할 것을 제안합니다.app/Providers/AppServiceProvider.php
:
public function register()
{
$this->app->bind('path.public', function() {
return realpath(base_path().'/../public_html');
});
}
영향을 끼칩니다.artisan
뿐만 아니라.
laravel 5.6에서는 이 코드를 bootstrap/app.php에 추가합니다.
$app->bind('path.public', function() {
return realpath(__DIR__.'/../');
});
여기서 __DIR_'././'공용 폴더의 경로입니다.
Laravel 6.0에 있는 저의 경우는 이것을 수행합니다.
이 파일: bootstrap/app.php
......
$app = new Illuminate\Foundation\Application(
$_ENV['APP_BASE_PATH'] ?? dirname(__DIR__) );
$app->bind('path.public', function() {
return realpath(__DIR__.'/../httpdocs'); });
.....
public_path() 폴더를 변경했는데, 이 예는 httpdocs 폴더로, 원하는 대로 물을 넣을 수 있습니다.
$app->bind('path.public', function() {
return base_path().'/mynewpublic';
});
파일 시스템 업데이트를 시도해 보셨습니까?php
'disks' => [
'public' => [
'driver' => 'local',
'root' => env('PATH_PUBLIC'),
'visibility' => 'public',
'url' => env('SITE_ROOT'),
],
언급URL : https://stackoverflow.com/questions/31758901/laravel-5-change-public-path
'programing' 카테고리의 다른 글
data.frame에서 결측값을 보고하는 우아한 방법 (0) | 2023.10.12 |
---|---|
org.apache.poi.POIXMLException Strict OOXML은 현재 지원되지 않습니다. 버그 #57699를 참조하십시오. (0) | 2023.10.12 |
Android Studio에서 ar 파일 만들기 (0) | 2023.10.07 |
301 표준 WordPress .htaccess 파일로 IP 주소 리디렉션 (0) | 2023.10.07 |
요소 형제를 얻는 *각도* 방법은 무엇입니까? (0) | 2023.10.07 |