diff --git a/assets/config.php b/assets/config.php index 99f9b596..1cbd0d26 100644 --- a/assets/config.php +++ b/assets/config.php @@ -71,7 +71,7 @@ return [ // Their responsibility is making Laravel features tenant-aware. 'database' => 'Stancl\Tenancy\TenancyBootstrappers\DatabaseTenancyBootstrapper', 'cache' => 'Stancl\Tenancy\TenancyBootstrappers\CacheTenancyBootstrapper', - 'filesystem' => 'Stancl\Tenancy\TenancyBootstrappers\FilesystemTenancyBootstrapper', + // 'filesystem' => 'Stancl\Tenancy\TenancyBootstrappers\FilesystemTenancyBootstrapper', 'redis' => 'Stancl\Tenancy\TenancyBootstrappers\RedisTenancyBootstrapper', 'queue' => 'Stancl\Tenancy\TenancyBootstrappers\QueueTenancyBootstrapper', ], diff --git a/src/TenancyBootstrappers/FilesystemTenancyBootstrapper.php b/src/TenancyBootstrappers/FilesystemTenancyBootstrapper.php index b16c5ce4..ffdec340 100644 --- a/src/TenancyBootstrappers/FilesystemTenancyBootstrapper.php +++ b/src/TenancyBootstrappers/FilesystemTenancyBootstrapper.php @@ -24,6 +24,12 @@ class FilesystemTenancyBootstrapper implements TenancyBootstrapper 'path' => $this->app->storagePath(), 'asset_url' => $this->app['config']['app.asset_url'], ]; + + $this->app['url']->macro('setAssetRoot', function ($root) { + $this->assetRoot = $root; + + return $this; + }); } public function start(Tenant $tenant) diff --git a/src/TenancyServiceProvider.php b/src/TenancyServiceProvider.php index 8656df72..5076374e 100644 --- a/src/TenancyServiceProvider.php +++ b/src/TenancyServiceProvider.php @@ -7,6 +7,7 @@ namespace Stancl\Tenancy; use Illuminate\Cache\CacheManager; use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider; +use Stancl\Tenancy\TenancyBootstrappers\FilesystemTenancyBootstrapper; class TenancyServiceProvider extends ServiceProvider { @@ -40,11 +41,9 @@ class TenancyServiceProvider extends ServiceProvider \Stancl\Tenancy\Middleware\InitializeTenancy::class, ]); - $this->app->instance('globalUrl', clone $this->app['url']); - $this->app['url']->macro('setAssetRoot', function ($root) { - $this->assetRoot = $root; - - return $this; + $this->app->singleton('globalUrl', function ($app) { + $instance = clone $app['url']; + $instance->setAssetRoot($app[FilesystemTenancyBootstrapper::class]->originalPaths['asset_url']); }); } diff --git a/src/routes.php b/src/routes.php index 7ada7f6b..69f51e70 100644 --- a/src/routes.php +++ b/src/routes.php @@ -2,8 +2,6 @@ declare(strict_types=1); -// if app.asset_url is set, suffix it -// if it's not set, use this controller? Route::get('/tenancy/assets/{path}', 'Stancl\Tenancy\Controllers\TenantAssetsController@asset') ->where('path', '(.*)') ->name('stancl.tenancy.asset');