2013-03-19 2 views
6

Это, наверное, простой вопрос, но я не могу найти прямой ответ нигде.Cloudfront, EC2 и относительные URL

Мой сайт размещен на Amazon EC2.

Я хочу использовать Amazon Cloudfront, чтобы ускорить загрузку изображений, Javascript и CSS на моем сайте.

На моем сайте я использовал относительные URL-адреса, чтобы указывать на изображения, Javascript и CSS, которые находятся на моем сервере EC2.

Итак, теперь, чтобы воспользоваться Cloudfront, мне нужно изменить все мои относительные URL-адреса на абсолютные URL-адреса, которые указывают на Cloudfront, или это будет обрабатываться автоматически Amazon/EC2/Cloudfront? Или, может быть, лучший способ задать вопрос: могу ли я оставить все мои URL-адреса в качестве относительных URL-адресов и все еще пользоваться всеми преимуществами Cloudfront?

ответ

0

Если вы хотите оставить все как есть, вы можете передать все через облачную настройку своего сайта как своеобразного происхождения. Это может работать очень хорошо, если ваш сайт в основном статичен.

Если вы хотите воспользоваться облачной областью без отправки всего, вам нужно будет обновить относительные URL-адреса до абсолютных. Файлы CSS могут сохранять относительные URL-адреса, пока файл css подается через облачный интерфейс.

1

Короткий ответ - нет, ваши относительные URL-адреса не будут работать так, как ожидалось, на CloudFront - за исключением случая, упомянутого Gio Hunt, что после того, как ваша страница загружает файл CSS, любой относительный URL-адрес внутри самого файла CSS разрешит CloudFront, но это, вероятно, не очень полезно в вашем случае.

See this answer для решения с помощью SASS, что довольно близко соответствует тому, что я сделал в прошлом:

  • я использовал SASS - http://sass-lang.com
  • У меня есть подмешать под названием cdn.scss с содержанием, как $ image_path: "/ images /";
  • Импорт этого микса в стиле sass @import «cdn.scss»
  • Обновить пути изображения как таковые: background: url ($ image_path + "image.png");
  • О развертывании изменить переменную $ image_path в mixin.scss, а затем повторно Sass

В основном вы регенерировать ваш CSS, чтобы использовать CDN (CloudFront) базовый URL, создав переменную, что все ваши страницы уважение. Трудность, связанная с этим, будет зависеть от того, сколько ссылок и файлов вам нужно изменить, но простой поиск и замена для относительных путей довольно легко выполнить.

Удачи.

Смежные вопросы