Tôi muốn thay đổi đường dẫn lưu trữ Laravel 5.1 sử dụng cho một cái gì đó như /home/test/storage
. Điều này có lợi thế là những tập tin này không được lưu trữ trong kho lưu trữ, mà là khá xấu xí tôi nghĩ. Trong Laravel 4, điều này rất đơn giản với bootstrap/paths.php
.Thay đổi đường dẫn lưu trữ trong Laravel 5
Trong Laravel 5, tính năng này hoạt động bằng cách sử dụng $app->useStoragePath('/path/')
trong bootstrap/app.php
. Tuy nhiên, tôi muốn xác định đường dẫn lưu trữ bằng tùy chọn cấu hình, chẳng hạn như $app->useStoragePath(config('app.storage_path')
. Tùy chọn config gọi một biến môi trường hoặc trả về một vị trí mặc định.
Thực hiện kết quả này trong một Uncaught exception 'ReflectionException' with message 'Class config does not exist'
; điều này có ý nghĩa, bởi vì chức năng này chưa được tải.
tôi đã cố gắng thiết lập các đường dẫn lưu trữ ngay sau khi khởi động:
$app->booted(function() use ($app) {
$app->useStoragePath(config('app.storage_root'));
});
này thay đổi gì cả. Tôi cũng đã thử trực tiếp ràng buộc nó với path.storage
:
$app->bind('path.storage', function ($app) {
return config('app.storage_root');
});
Tùy chọn cuối cùng hoạt động một phần; bộ nhớ cache chế độ xem hiện được đặt ở vị trí chính xác nhưng nhật ký vẫn ở vị trí cũ.
Tốt không, bởi vì đây buộc bạn phải có một vị trí cụ thể. Bạn có thể gitignore các liên kết tượng trưng và thêm nó cho mỗi cài đặt, nhưng điều này là khá hacky. – spacek33z