Bir theme manager olarak paket geliştiriyorum. Amacım aynı anda birden fazla temayı isteğe bağlı olarak gösterebilmek. Proje klasöründe themes
adında bir klasörün altında vendor/theme
tarzında tema dosyalarını tutuyorum. Aynı zamanda bu tema klasörlerinde içinde public
adında bir klasör daha var Bir türlü temanın public klasörünü asıl public klasörü altında gösteremedim.
Laravelde bu iş için File::link
kullanılıyor anladığım kadarıyla. Bende aşağıdaki gibi bağlamaya çalışıyorum
\Illuminate\Support\Facades\File\File::link(
base_path('themes/vendor/any-theme/public')
public_path('themes/vendor/any-theme')
);
ama Cannot create a file when that file already exists.
şeklinde bir hata alıyorum. Belli ki link oluşturulmuş, örneğin css dosyası için http requesti gelince server otomatik olarak linkli klasörler yoksa bile uygulayıp themes/vendor/any-theme
klasörlerini oluşturuyor ancak assetlere erişemiyorum.
Aşağıdaki görselde sayfaya istek gelince otomatik oluşturulan klasörleri görüyorsunuz ama assetler yok. .htaccess dosyasında FollowSymLinks
dememe rağmen yine aynı sonucu alıyorum.
Doğrudan symlink'i kullanırsam permission denied hatası veriyor. Bu muhtemelen Windows ile alakalı bir durum ama önce Laravel native çözümlere bakıyorum.