Laravel 11在Github Codespaces中Scramble生成HTTPS文档路径异常
解决Scramble生成HTTPS接口文档URL的问题
方法1:强制指定URL协议
在config/scramble.php配置文件中,除了已设置的api_domain,新增url_scheme配置项并指定为https:
return [ // 其他原有配置... 'api_domain' => '你的Codespaces发布域名', 'url_scheme' => 'https', // 其他原有配置... ];
修改完成后执行命令清除配置缓存:
php artisan config:clear
方法2:通过环境变量灵活配置
在项目根目录的.env文件中添加协议指定:
SCRAMBLE_URL_SCHEME=https
然后在scramble.php中引用该环境变量:
'url_scheme' => env('SCRAMBLE_URL_SCHEME', 'http'),
这种方式可以根据不同环境(本地/ Codespaces)快速切换协议。
方法3:自动识别Codespaces请求头
Github Codespaces会通过X-Forwarded-Proto请求头传递实际使用的协议,可在app/Providers/AppServiceProvider.php的boot方法中添加逻辑,让Scramble自动识别:
use Dedoc\Scramble\Scramble; public function boot() { Scramble::route('/api/docs', function (Scramble $scramble) { $scramble->urlScheme(request()->header('X-Forwarded-Proto') ?? 'https'); }); }
内容的提问来源于stack exchange,提问作者chameera
相关产品推荐
相关产品推荐

