开发环境是http的,线上环境https,导致线上资源加载http而无法加载。

大多网友遇到问题是通过给asset()加第二个参数,或使用secure_asset()代替

两个方法都要修改所有引用的blade,还有一些第三方blade重写更加麻烦,如horizon的单页面

废话少说,解决方案:

 

1、.env 添加ASSET_URL=xxx 与APP_URL一致,用于给asset()添加固定的https前缀

2、.env 添加 FORCE_HTTPS=true,本地环境false

3、config/app.php 添加'force_https' => env('FORCE_HTTPS', false)

4、AppServiceProvider boot() 里添加如下代码,用于解决url()生成https链接

        if( config('app.force_https') ){
            \Url::forceScheme('https');
        }

5、AppServiceProvider register() 里添加如下代码,用于解决pjax加载https

        if( config('app.force_https') ) {
            $this->app['request']->server->set('HTTPS', true);
        }

6、测试,OK