我试着在heroku上加载我的Laravel L5 swagger URL,但我得到了一个空白屏幕。在用chrome检查检查视图时,我发现下面有错误
https://MY_APP_NAME.herokuapp.com/api/documentation' was loaded over HTTPS, but requested an insecure script 'http://MY_APP_NAME.herokuapp.com/docs/asset/swagger-ui-standalone-preset.js?v=2fb7deffbc136bc6540eb1aa890ca736'. This request has been blocked; the content must be served over HTTPS.
我已经将heroku上的以下env变量设置为应用程序域
APP_URL=
L5_SWAGGER_BASE_PATH=
L5_SWAGGER_CONST_HOST=
但仍然没有变化。
注意:当我通过HTTP打开文档页面时,它可以工作,但我希望它能通过HTTPS连接工作。请提出任何有帮助的建议。把它留在HTTP连接上可以吗。
感谢
之所以会发生这种情况,是因为l5 swagger默认情况下使用绝对路径加载您的资产,在config/l5-swager.php中,您默认情况下会使用以下路径:
'use_absolute_path' => env('L5_SWAGGER_USE_ABSOLUTE_PATH', true),
在这里或您的环境中将其更改为false
步骤01:添加到生产L5_SWAGGER_GENERATE_ALWAYS = false
或本地true
中的.env
步骤02:添加AppServiceProvider.php
public function boot()
{
if($this->app->environment('production')) {
URL::forceScheme('https');
}
}