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。从我的面包屑路由中删除中间件解决了这个问题。
对于我目前正在处理的 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。从我的面包屑路由中删除中间件解决了这个问题。