2013-03-19 6 views
6

Questa è probabilmente una domanda semplice, ma non riesco a trovare una risposta semplice da nessuna parte.Cloudfront, EC2 e URL relativi

Il mio sito Web è ospitato su Amazon EC2.

Voglio approfittare di Amazon Cloudfront per accelerare il caricamento delle immagini, Javascript e CSS sul mio sito.

In tutto il mio sito, ho utilizzato gli URL relativi per indicare le immagini, i Javascript e i CSS che risiedono sul mio server EC2.

Quindi, per sfruttare Cloudfront, devo modificare tutti i miei URL relativi in ​​URL assoluti che puntano a Cloudfront, o sarà gestito automaticamente da Amazon/EC2/Cloudfront? Oppure, forse un modo migliore per porre la domanda è, posso lasciare tutti i miei URL come URL relativi e ottenere ancora tutti i vantaggi di Cloudfront?

risposta

0

Se si desidera lasciare tutto come è, è possibile passare tutto attraverso cloudfront impostando il sito come origine personalizzata. Questo può funzionare abbastanza bene se il tuo sito è per lo più statico.

Se si desidera sfruttare il cloudfront senza inviare tutto attraverso, è necessario aggiornare i propri url relativi a quelli assoluti. I file CSS possono conservare url relativi finché il file css viene servito tramite cloudfront.

1

Risposta breve no, i relativi URL non funzioneranno come previsto su CloudFront - ad eccezione del caso menzionato da Gio Hunt che una volta caricata la pagina CSS, qualsiasi URL relativo all'interno del file CSS stesso verrà risolto in CloudFront, ma questo probabilmente non è molto utile nel tuo caso.

See this answer per una soluzione che utilizza SASS che corrisponde molto da vicino quello che ho fatto in passato:

  • ho usato SASS - http://sass-lang.com
  • Ho un mixin chiamato cdn.scss con contenuti come $ image_path: "/ images /";
  • Importare quel mixin nello stile sass @import "cdn.scss"
  • Aggiornare percorsi immagine come tali: background: url ($ image_path + "image.png");
  • Il dispiegamento posso cambiare la variabile $ percorso_immagine nel mixin.scss ed eseguire nuovamente sass

Fondamentalmente si rigenerare il CSS per utilizzare il CDN (CloudFront) URL di base per la creazione di una variabile che tutte le pagine rispetto. La difficoltà di fare ciò dipenderà dal numero di riferimenti e file che è necessario modificare, ma una semplice ricerca e sostituzione per i percorsi relativi è abbastanza facile da realizzare.

Buona fortuna.