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:
mathieu
2026-08-18 02:42:58 +02:00
co-authored by Claude Opus 5
parent ab878b4d3c
commit 9cb3ca535d
4 changed files with 36 additions and 27 deletions
+8 -1
View File
@@ -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>