Laravel Filament(Sail/Docker)环境下HTTPS请求JS引发CORS错误
解决Laravel Sail + Filament下HTTPS环境静态资源HTTP请求导致的CORS错误
问题场景
基于Docker(Laravel Sail)的Laravel + Filament框架,使用https://test.docker.localhost访问时,table.js和select.js等Filament静态资源被以http://协议请求,触发CORS错误:
Access to script at 'http://test.docker.localhost/js/filament/forms/components/select.js?v=3.2.50.0' from origin 'https://test.docker.localhost' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. async-alpine.js?v=3.2.50.0:1 GET http://test.docker.localhost/js/filament/forms/components/select.js?v=3.2.50.0 net::ERR_FAILED
解决方案
1. 修正环境配置
打开项目根目录的.env文件,确保以下配置正确:
APP_URL=https://test.docker.localhost SAIL_SSL=true
2. 配置Laravel信任代理
Laravel Sail依赖反向代理运行,应用需要信任代理才能正确识别当前请求的HTTPS协议。修改config/app.php中的trusted_proxies项:
'trusted_proxies' => ['*'], // 开发环境可直接设为*,生产环境建议指定具体IP段
3. 清除配置与视图缓存
执行Sail命令清除缓存,确保新配置生效:
sail artisan config:clear sail artisan view:clear
4. 强制HTTPS路由(可选)
如果上述步骤仍未解决问题,可在app/Providers/AppServiceProvider.php的boot方法中添加代码,强制所有路由使用HTTPS:
use Illuminate\Support\Facades\URL; public function boot() { URL::forceScheme('https'); }
完成以上操作后重新访问页面,Filament的静态资源将以https://协议加载,CORS错误即可解决。
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

