Laravel 9集成Telescope时资源URL强制HTTPS导致加载失败
解决Laravel 9 Telescope仪表盘资源HTTPS加载问题
方法1:配置APP_URL环境变量
直接在.env文件中指定正确的HTTP访问地址:
APP_URL=http://localhost:82
Laravel的URL生成逻辑默认依赖APP_URL配置,Telescope的静态资源路径会基于该值生成,这是最直接的修复方式。
方法2:优化AppServiceProvider中的协议强制逻辑
如果环境变量配置后仍未生效,可在AppServiceProvider的boot方法中补充Telescope专属的URL配置:
use Illuminate\Support\Facades\URL; use Laravel\Telescope\Telescope; public function boot() { if (config('app.env') === 'local') { URL::forceScheme('http'); // 确保Telescope资源根路径匹配APP_URL Telescope::afterResolving(function () { URL::forceRootUrl(config('app.url')); }); } }
方法3:处理Docker反向代理的协议识别(若使用反向代理)
如果Docker容器前端部署了Nginx等反向代理,需在代理配置中传递正确的协议头:
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port;
同时在Laravel的config/trustedproxy.php中添加Docker子网到信任列表:
return [ 'proxies' => [ '172.17.0.0/16', // Docker默认子网段 ], 'headers' => Illuminate\Http\Request::HEADER_X_FORWARDED_ALL, ];
此配置可让Laravel正确识别客户端实际使用的HTTP协议。
方法4:清除配置缓存
修改配置后执行以下命令清除缓存,确保新配置生效:
php artisan config:clear php artisan cache:clear
内容的提问来源于stack exchange,提问作者Yeasir Arafat Majumder
相关产品推荐
相关产品推荐

