Fallback alle immagini locali quando si rompono i file cloud?


12

Sto usando il modulo Cloud Files che utilizza l' API PHP di Rackspace Cloud Files per archiviare tutti i file caricati su Rackspace Cloud Files (un CDN). Funziona tutto molto bene.

Tuttavia, oggi, Rackspace stesso ha avuto un'interruzione relativa alla loro API e ha causato la rottura dell'intero sito. Non posso assolutamente che ciò accada quando il mio sito è finalmente online. Esiste un modo per mantenere i file localmente e nei file cloud in modo che se c'è un problema posso capovolgere un'impostazione nelle pagine di amministrazione e inizierà a utilizzare i file locali in modo che il sito continui a funzionare mentre Rackspace funziona il problema?


Sono interessato al fatto che tu abbia scelto di utilizzare i file cloud (specifici di Rackspace) e non il modulo CDN . Il modulo CDN non ha fallback? Non sono un professionista su CDN.
Duncanmoo,

1
Ho usato il modulo Cloud Files perché gestisce effettivamente il trasferimento dei file su Rackspace, mentre il modulo CDN no. CDN richiede un'applicazione esterna denominata File Conveyor per eseguire i trasferimenti. Non ho avuto problemi a far funzionare File Conveyor con Cloud Files senza interrompere il mio sito, quindi ho scelto la soluzione più semplice.
Kenny Wyland,

2
Forse è una buona idea chiederlo come richiesta di funzionalità nella pagina di emissione del modulo. Teoricamente se il cloud Rackspace ha problemi a servire un file dovrebbe restituire una risposta "404". Quindi, se ciò accade, il modulo deve ricorrere al file system locale. Penso che ciò possa essere fatto dallo sviluppatore del modulo.
ANDiTKO,

Il modulo CDN supporta entrambe le modalità "File Conveyor" e "Origin Pull". L'estrazione dell'origine è automatica, il trasportatore di file no. I file cloud Rackspace supportano solo il trasportatore di file, quindi la necessità di un modulo specifico per gestire automaticamente il trasferimento di file.
Mike,

Risposte:


6

In JavaScript, puoi ascoltare il listener di eventi onerror dell'immagine.

imposta la fonte come di consueto. in onerror, imposta this.src sul percorso dell'immagine locale:

<img src="//somecdn.com/cat.jpg" onerror="this.src='/localpath/cat.jpg';" />

potresti usare jquery per scorrere su tutte le immagini della pagina e aggiungere il listener di eventi onerror


Non esattamente quello che cercavo, ma comunque una soluzione ragionevole.
Kenny Wyland,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.