Serve images without PHP, add the 720 and 1280 steps, trim two hot paths

- Image widths are 480, 720, 960, 1280, 1600 and 2400. A phone needed
  721 pixels and got 960. Existing images receive the new steps from
  a task; stored pages pick them up at render time, so no document is
  rewritten. Mobile backgrounds use 720.
- A variant served once is mirrored to public/media, and a rewrite rule
  lets the web server deliver it from there. var/media stays the source.
- The hero preload follows the image each device really shows.
- The post navigation reads the order and then two posts instead of
  up to 500 documents.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This commit is contained in:
kantarciandClaude Fable 5.2 committed 2026-11-10 12:24:30 +01:00
1 parent dca2665138
commit 7d0369bada
32 files changed
+550 -57

No files matched your search

+4
View File
@@ -3,6 +3,7 @@
namespace App\Ops;
use App\Content\DocumentValidator;
use App\Content\MediaMirror;
use App\Domain\InvalidDocument;
use App\Domain\InvalidPage;
use Doctrine\DBAL\Connection;
@@ -49,6 +50,7 @@ final class SitePackage
private Updater $updater,
private string $root,
private string $mediaDirectory,
private ?MediaMirror $mirror = null,
) {
}
@@ -231,6 +233,8 @@ final class SitePackage
return $fail();
}
$step('Medien ersetzen', true, sprintf('%d Datei(en) übernommen.', $moved));
// Was der Webserver noch aus dem Abbild lieferte, gehört zur Website von vorher.
$this->mirror?->prune();
} finally {
if (!$inWartung) {
$this->updater->maintenance(false);