LinkHeaderMiddleware should use the same URL as ViewFactory

This way the X-Forwarded-Path header is used to generate the Link header
This commit is contained in:
Pierre Rudloff 2022-02-20 13:55:44 +01:00
parent bfaea0e381
commit 9410d4b49b
3 changed files with 31 additions and 30 deletions

View file

@ -2,6 +2,7 @@
namespace Alltube\Middleware;
use Alltube\Factory\ViewFactory;
use Psr\Container\ContainerInterface;
use Slim\Http\Request;
use Slim\Http\Response;
@ -13,19 +14,6 @@ use Slim\Router;
*/
class LinkHeaderMiddleware
{
/**
* @var Router
*/
private $router;
/**
* LinkHeaderMiddleware constructor.
* @param ContainerInterface $container
*/
public function __construct(ContainerInterface $container)
{
$this->router = $container->get('router');
}
/**
* @param Request $request
@ -35,12 +23,14 @@ class LinkHeaderMiddleware
*/
public function __invoke(Request $request, Response $response, callable $next)
{
$uri = ViewFactory::prepareUri($request);
$response = $response->withHeader(
'Link',
implode(
'; ',
[
'<' . $this->router->getBasePath() . '/css/style.css>',
'<' . $uri->getBasePath() . '/css/style.css>',
'rel=preload', 'as=style'
]
)