laravel 在本地测试 将引用地址强制转成了https
我在本地一laravel环境
搭好运行时,发生了奇怪的现象,所有引用文件居然带有https,但我实际上是没有这样的配置的,准备通过 百度查询看能解决这个问题
百度查到的都是千篇一律,答非所问,只找到一个,而且和我的问题对不上
下面是他的问题以及解决办法,但不是我的问题以及解决办法
我正在开发 Laravel 5.5 版。我有一个需要执行域的应用程序。这就是为什么,我在我的
/etc/hosts中添加了以下条目。文件,以便我可以使用 等域打开我的应用程序仪表板.application.dev 或 api.application.dev .这是我的/etc/hosts文件看起来像。127.0.0.1 localhost 127.0.1.1 p01ymath 127.0.0.1 dashboard.application.dev 127.0.0.1 api.application.dev
我的问题与他的类似
我通过检查自已的代码发现,只要使用了asset这个函数,就会发生地址变化,而在官方说明中,说的是asset有两个参数,第一个是文件路径,第二个是否需要转换为https,默认是不启用第二个参数的
asset("路径",boolean)
我本地的测试代码
<link rel="stylesheet" href="{{asset('/static/css/bootstrap.css')}}" crossorigin="anonymous">
输出结果为
<link rel="stylesheet" href="https://localdomain.test/static/css/bootstrap.css" crossorigin="anonymous">
所有使用到asset的都这样,从我的项目上面看,明显是asset出问题了
于是查找asset函数,
在项目文件中找到这个方法
\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php
其定义如下
if (! function_exists('asset')) {
/**
* Generate an asset path for the application.
*
* @param string $path
* @param bool|null $secure
* @return string
*/
function asset($path, $secure = null)
{
return app('url')->asset($path, $secure);
}
}
从上面代码看,感觉代码出了问题,这儿将null转成asset的第二个值出了问题,第二个值为boolean,为是兼容其他程序,加了一个环境变量,IS_HTTPS=false
修改上面程序
if (! function_exists('asset')) {
/**
* Generate an asset path for the application.
*
* @param string $path
* @param bool|null $secure
* @return string
*/
function asset($path, $secure = null)
{
$secure=is_null($secure)?env('IS_HTTPS'):$secure;
return app('url')->asset($path, $secure);
}
}
经过测试,问题解决
对于上面这个问题,各位是否遇到过,各位是如何解决的呢?
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)