Cesse de demander au serveur une couverture qui n'existe pas
La mise en cache retombait sur le relais dès que la tentative directe n'était pas « ok », sans distinguer « je n'ai pas pu demander » de « on m'a répondu qu'il n'y a rien ». Un 404 est une réponse : le relais irait chercher la même URL et ne peut pas faire mieux. D'où deux 404 par vignette manquante sur la bibliographie d'un auteur, à chaque affichage puisque rien ne se met alors en cache — et dont le second venait de notre propre serveur, qui refuse par construction une URL absente de la base. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -125,7 +125,16 @@ export async function couvertureMettreEnCache(url) {
|
||||
// Bloqué par le CORS, ou hôte injoignable : on ne sait pas lequel, et peu importe.
|
||||
}
|
||||
|
||||
if (!reponse || !reponse.ok) {
|
||||
// ⚠️ Le relais ne rattrape QU'UN ACCÈS EMPÊCHÉ, jamais une image absente. Un 404 (ou un
|
||||
// 410) est une réponse : l'hôte a parlé, et il a dit qu'il n'avait rien — or le relais
|
||||
// ira chercher la MÊME url, il ne peut donc pas faire mieux. L'appeler quand même
|
||||
// produit un second 404, de notre serveur cette fois, sur toute couverture
|
||||
// qu'OpenLibrary ne connaît pas (« ?default=false » les rend franches, c'est voulu).
|
||||
// C'est ce qui se voyait en console sur la bibliographie d'un auteur, à chaque
|
||||
// affichage puisque rien ne se met jamais en cache.
|
||||
const absente = reponse !== null && (reponse.status === 404 || reponse.status === 410);
|
||||
|
||||
if (!absente && (!reponse || !reponse.ok)) {
|
||||
reponse = await fetch('/api/couvertures?url=' + encodeURIComponent(url));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user