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.