Laravel 5.3 中的 ESI 标签

ESI tags in Laravel 5.3

对于我目前正在处理的 Laravel 5.3 项目,面包屑应该根据特定上下文动态构建。由于我们在这个项目上需要 Varnish,我正在尝试使用 ESI 标签。

我已经设置了一个呈现面包屑的路线,并且 return 如下所示 routes/web。php:

Route::get('breadcrumbs', 'BreadcrumbController@showBreadcrumb');

这是控制器的样子:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class BreadcrumbController extends Controller
{
    public function showBreadcrumb(Request $request)
    {
        return 'Breadcrumb';
    }
}

在我的模板中,我将 ESI 标签定义如下:

<esi:include src="{{ url('breadcrumbs') }}" />

现在,当我加载页面时,我会在应该呈现 ESI 标记的位置看到文本 "Redirecting to /breadcrumbs"。显然,我然后重定向到 /breadcrumbs 并查看我的控制器的输出。

我怎样才能停止这种重定向行为并只获得 Laravel return 所需的输出?

事实证明,我在网络路由上使用的本地化中间件导致了重定向。它重定向任何没有语言前缀的路由。

我正在使用 mcamara/laravel-localization。从我的面包屑路由中删除中间件解决了这个问题。