Özellikle paylaşımlı hostingerde sorun çıkaran public klasörünün konumu ve adı nasıl değiştirilir.
Laravelin varsayılan klasör hiyerarşisi şu sekildedir:
/
/app
/bootstrap
/config
/database
/public
/index.php
/resources
/routes
/storage
burada ki public klasörünü nasıl public_html olarak değiştirirsiniz.
İlk olarak ./server.php
dosyasından public klasörünün konumunu değiştiriniz.
if ($uri !== '/' && file_exists(__DIR__.'/public_html'.$uri)) {
return false;
}
require_once __DIR__.'/public_html/index.php';
Sonrasında ./app/Providers/AppServiceProvider.php
dosyasından bu klasörü bildirmeniz uygulamaya bildirmelisiniz. Bunun için register fonksiyonunun içerisinde alttaki kod bloğunu ekleyin.
public function register()
{
$this->app->bind('path.public', function() {
return base_path('public_html');
});
}
Tasarım için ./webpack.mix.js
dosyasına public klasörünü belirlemeli ve derlenecek dosyaların konumlarını girmelisiniz.
mix
.setPublicPath('public_html')
.js('resources/js/app.js', 'public_html/js')
.sass('resources/sass/app.scss', 'public_html/css');
Dikkat: Jetstream kurduğunuzda webpack.mix.js dosyası değiştirileceği için kurulumu yaptıktan sonra bu işlemleri yapınız.
Son olarak public klasörünü public_html olarak yeniden adlandırın.
Opsiyonel: ./config/filesystems.php
içerisinden storage konumunu ve sembolik link konumunu değiştirin:
'public' => [
'driver' => 'local',
'root' => storage_path('app/public_html'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
'links' => [
public_path('storage') => storage_path('app/public_html'),
],