首页 > 解决方案 > Laravel 5 url() 不包含方案

问题描述

我是 Laravel 的新手。

我正在开发一个现有的 Laravel 5.8 项目。我使用 HomeStead 在本地安装它。

我注意到重定向的一个奇怪行为:考虑到我的主页是http://project.test/,当有重定向时/redirected,Laravel 将位置设置为http://project.test/://project.test/redirected!当我试图弄清楚 wat 发生了什么时,我看到url('/')Laravel 函数给了我://project.test而不是http://project.test.

request()->getSchemeAndHttpHost()http://project.test.

web.php 中的示例:

Route::get('/info', function (Request $request) {


    echo url('/'); // gives '://project.test'
    echo '<br>';
    echo request()->getSchemeAndHttpHost(); // gives 'http://project.test'

    // This will lead me to 'http://project.test/://project.test/redirect'
    // return redirect('/redirect');
});


我对静态资源有同样的问题。

配置:

我当然错过了一些东西,但到目前为止我找不到任何有关此的信息。

标签: laravellaravel-5

解决方案


当你重定向检查你是否写过:“Redirect::home()”,尝试“return Redirect::home()”(注意返回)

我测试了你的路线,它对我来说很好。我给你我的配置,只需将我的项目名称“tlara”替换为你的:“project”

在主机.sam

127.0.0.1 talara.test #laragon 魔法!(注意不是我的ip 192.xx.xx,127.0.0.1是通用localhost)

在 .env 中

APP_URL= http://localhost
..
REDIS_HOST=127.0.0.1 (我不知道是否相关)..
SESSION_DOMAIN='localhost'

清除

清除缓存(路由、缓存、视图)(可能没用)

测试

tlara.test/info
127.0.0.1/info
localhost/tlara/public/info


推荐阅读