mergeConfigFrom( base_path('config/domains.php'), 'domains' ); } /** * Bootstrap services. */ public function boot(): void { $host = Request::getHost(); $themeOverride = Request::get('theme'); $defaults = [ 'name' => config('app.name'), 'theme' => 'b2in', 'view_prefix' => 'b2in', 'assets_dir' => 'build/b2in', 'url' => config('app.url'), 'domain_name' => config('app.domain_name'), ]; $domainConfig = DomainAssetContext::resolve( $host, $defaults, config('domains.domains', []), is_string($themeOverride) ? $themeOverride : null, ); $staticAssetOrigin = DomainAssetContext::staticAssetOrigin($domainConfig); $viteDevServerUrl = DomainAssetContext::viteDevServerUrl($domainConfig); config([ 'app.theme' => $domainConfig['theme'], 'app.view_prefix' => $domainConfig['view_prefix'], 'app.domain_name' => $domainConfig['domain_name'], 'app.url' => $domainConfig['url'], 'app.asset_url' => $staticAssetOrigin, ]); URL::forceRootUrl($domainConfig['url']); URL::forceScheme(parse_url($domainConfig['url'], PHP_URL_SCHEME) ?: 'https'); /** @var UrlGenerator $urlGenerator */ $urlGenerator = app('url'); $urlGenerator->useAssetOrigin($staticAssetOrigin); View::share('theme', $domainConfig['theme']); View::share('viewPrefix', $domainConfig['view_prefix']); View::share('domainName', $domainConfig['domain_name']); View::share('domainConfig', $domainConfig); View::share('domainUrl', $domainConfig['url']); View::share('assetUrl', $staticAssetOrigin); View::share('viteDevServerUrl', $viteDevServerUrl); if (! app()->runningInConsole()) { if (isset($domainConfig['assets_dir'])) { DomainAssetContext::configureVite($domainConfig); } if (app()->environment('local')) { config(['app.vite_dev_server_url' => $viteDevServerUrl]); } else { Vite::useScriptTagAttributes(['crossorigin' => false]); Vite::useStyleTagAttributes(['crossorigin' => false]); } } } }