Reparer la publication de l API (index.html cassé)
Le publish de MaBibli.Api recopiait index.html tel quel, placeholders compris, et l application publiee restait blanche. Cause : dans le SDK .NET 10, la cible de publication GenerateHtmlAssetPlaceholdersPublishStaticWebAssets lit la liste des fichiers HTML dans @(_HtmlStaticWebAssets), item alimente uniquement par la cible de *build*. Quand c est l API qui demande au client ses assets de publication, la cible de build n a pas tourne : la liste est vide, aucun asset HTML calcule n entre dans le manifeste, et c est le fichier source qui est recopie par ComputeResolvedFilesToPublishList. Correction : supprimer le besoin de reecriture plutot que la reparer. WasmFingerprintAssets=false et pas de OverrideHtmlAssetPlaceholders (c est lui qui, a true, forcait l empreinte de blazor.webassembly.js) ; index.html reference des noms stables, sans import map ni preload placeholder. Le contournement « ?m=1 » de l import du module scanner devient inutile. Verifie : publish self-contained lance, scripts references en 200, application chargee dans un navigateur (catalogue affiche, module JS du scanner charge, aucun 404). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -67,13 +67,11 @@
|
||||
|
||||
private enum Etat { Demarrage, Actif, Erreur }
|
||||
|
||||
// Le « ?m=1 » n'est pas cosmétique. En développement, l'import map généré par Blazor
|
||||
// fait pointer « ./js/scanner-camera.js » vers un nom empreinté que l'API hôte ne sert
|
||||
// pas (elle utilise UseStaticFiles, qui ignore les points d'entrée empreintés) : l'import
|
||||
// échoue en 404 et le scan ne démarre jamais. Une chaîne de requête empêche l'import map
|
||||
// de réécrire le chemin ; en publication, aucune réécriture n'est générée pour ce fichier,
|
||||
// donc le comportement est identique. Vérifié dans les deux modes.
|
||||
private const string CheminModule = "./js/scanner-camera.js?m=1";
|
||||
// Chemin nu : il n'y a plus d'import map depuis que les empreintes WASM sont désactivées
|
||||
// (voir MaBibli.Client.csproj), donc plus de réécriture vers un nom empreinté que l'hôte
|
||||
// ne servirait pas. Le contournement « ?m=1 » qui neutralisait cette réécriture n'a plus
|
||||
// lieu d'être. Vérifié en développement et en publication.
|
||||
private const string CheminModule = "./js/scanner-camera.js";
|
||||
|
||||
// ~12 images/s : bien assez pour scanner, et deux fois moins de travail que 25 fps.
|
||||
private const int IntervalleMs = 80;
|
||||
|
||||
@@ -4,7 +4,14 @@
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<OverrideHtmlAssetPlaceholders>true</OverrideHtmlAssetPlaceholders>
|
||||
<!--
|
||||
Empreintes WASM désactivées, et donc pas d'import map ni de placeholders dans index.html.
|
||||
Raison : quand c'est MaBibli.Api qui publie ce projet, le SDK .NET 10 n'exécute jamais la
|
||||
réécriture des placeholders et recopie index.html brut (voir CLAUDE.md). Des noms de
|
||||
fichiers stables suppriment le problème à la racine. Le cache-busting reste assuré par le
|
||||
service worker, qui compare les empreintes de service-worker-assets.js.
|
||||
-->
|
||||
<WasmFingerprintAssets>false</WasmFingerprintAssets>
|
||||
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>MaBibli</title>
|
||||
<base href="/" />
|
||||
<link rel="preload" id="webassembly" />
|
||||
<link rel="stylesheet" href="lib/bootstrap/dist/css/bootstrap.min.css" />
|
||||
<link rel="stylesheet" href="css/app.css" />
|
||||
<link rel="icon" type="image/png" href="favicon.png" />
|
||||
@@ -14,7 +13,6 @@
|
||||
<link href="manifest.webmanifest" rel="manifest" />
|
||||
<link rel="apple-touch-icon" sizes="512x512" href="icon-512.png" />
|
||||
<link rel="apple-touch-icon" sizes="192x192" href="icon-192.png" />
|
||||
<script type="importmap"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -31,7 +29,7 @@
|
||||
<a href="." class="reload">Reload</a>
|
||||
<span class="dismiss">🗙</span>
|
||||
</div>
|
||||
<script src="_framework/blazor.webassembly#[.{fingerprint}].js"></script>
|
||||
<script src="_framework/blazor.webassembly.js"></script>
|
||||
<script>navigator.serviceWorker.register('service-worker.js', { updateViaCache: 'none' });</script>
|
||||
</body>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user