Ist es möglich ein eigenes Routing für den Assets-Ordner zu erstellen?
Grund ist jener dass ich zusätzlich Bilder absichern möchte die in einem nicht öffentliche Ordner stecken.
In meiner routing.yml habe ich folgendes:
Code:
assets:
path: /assets/images/{file}
defaults:
_controller: CreoCode\PrivatBundle\Controller\FilesController:assetAction
_scope: frontend
_token_check: true
requirements:
file: .+
Und in meinem Controller:
Code:
<?php
namespace CreoCode\PrivatBundle\Controller;
use Contao\Controller;
use Contao\CoreBundle\Exception\AccessDeniedException;
use Contao\CoreBundle\Exception\InsufficientAuthenticationException;
use Contao\CoreBundle\Exception\PageNotFoundException;
use Contao\CoreBundle\Framework\ContaoFramework;
use Contao\Dbafs;
use Contao\FilesModel;
use Contao\FrontendUser;
use Contao\StringUtil;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\Session\Session;
class FilesController
{
/**
* Make sure only authorised users can view this asset
*/
public function assetAction(string $file): BinaryFileResponse
{
print_r('test!');
exit();
}
}
Wenn ich jetzt app_dev.php/assets/images/1/test-12345.jpg aufrufe. Dann bekomme ich wie erwartet test!.
Allerdings wenn ich ohne app_dev.php das Bild aufrufe scheint das routing nicht zu greifen.
Das routing über /files/ funktioniert hingegen wunderbar, mit und ohne app_dev.php
Auch den Cache leeren hat nichts gebracht.