2015-02-01 2 views
0

Недавно я попытался отключить некоторый HTTP-запрос на изображения CDN (используя S3).Изображение Prestashop не загружено должным образом после использования cd

мой CDN расположен в s3.mydomain.com

После того, как я добавить медиа-сервер все выглядит нормально (CSS, JavaScript). Однако есть одна проблема. Я получаю недостающую фотографию для всего изображения моего продукта.

Я попытался следующие:

  • Выключено дружественный URL -> то все работает как шарм. изображение продукта может отображаться (но только когда дружественные URL включен выключен
  • регенерата эскизы -.> Еще получить недостающее изображение
  • Перемещение изображения -.> Еще получить недостающее изображение

Full. URL с "Дружественные URL" включен в: http://xx.bro.do/2579-product_list_default/langdon-parka-black.jpg (это-не-работа)

с "Дружественные URL" выключен, он становится: http://xx.bro.do/img/p/2/5/7/9/2579-product_list_default.jpg

Так или иначе «Дружественные URL» не должным образом перенаправлены на „Unfriendly URL“

Ниже приводится фрагменты моей .htaccess

# Images 
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR] 
RewriteCond %{HTTP_HOST} ^brodo.dev$ 
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L] 
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR] 
RewriteCond %{HTTP_HOST} ^brodo.dev$ 
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L] 
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR] 
RewriteCond %{HTTP_HOST} ^brodo.dev$ 
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L] 
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR] 
RewriteCond %{HTTP_HOST} ^brodo.dev$ 
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L] 
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR] 
RewriteCond %{HTTP_HOST} ^brodo.dev$ 
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L] 
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR] 
RewriteCond %{HTTP_HOST} ^brodo.dev$ 
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L] 
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR] 
RewriteCond %{HTTP_HOST} ^brodo.dev$ 
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L] 
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR] 
RewriteCond %{HTTP_HOST} ^brodo.dev$ 
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L] 

Другое решение, что 100% будет работать, изменив фактический код на следующие файлы:

  • product.tpl
  • продукта list.tpl
  • и в значительной степени г которые не имеют изображения продукта.

Это последнее усилие, я стараюсь избегать просто потому, что если шаблон изменится в будущем, то кому-то придется повторить работу снова.

Так кто знает, как это исправить? Я ценю любую помощь.

+0

Вы нашли решение? даже я столкнулся с той же проблемой –

ответ

2

Этот метод работал для меня.

Этап 1: Включить дружественный адрес. проверьте, что все работает отлично без медиа-сервера. Убедитесь, что дружественный включен и медиа-сервер отключен

когда шаг 1 работает, вы увидите URL вашей продукции, как http://ec2.aws.XXXXXXXXX.com/1-large_default/faded-short-sleeves-tshirt.jpg

Шаг 2: включить медиа-сервер прямо сейчас ,я, использую CloudFront в и CDN s3 как ведро

когда медиасервер включен

вы столкнетесь 2 сценариев

1.css и JS обыкновение нагрузки и даже изображения не будут загружены

2. изображения загружаются, но css и js не будут загружены

исправить это: GOTO Дополнительные параметры ->Палатки ->CCC (объединить компресс и кэш)

Смарт кэш для CSS - выделите не если есть.

смарт кэш JavaScript - выделите не если да.

После этого перезагрузите страницу. сайт, как представляется, будет хорошо ..

, но на данном этапе вы можете встретить еще 2 сценариев

1.css, JS, изображения все загруженные должным образом, но изображения продукта обыкновение нагрузки.

2.everything правильно загружается, и ваш сайт хорош. без каких-либо дальнейших изменений.

Если вы противопоставляете 1-й сценарий, выполните следующие действия.

Ставка 1. открыть свой FTP-клиент и перейдите к апачу папке вообще будет проживать в rootofserver/и т.д./апаче/

in my case it is rootofserver/etc/httpd 

в вашем случае это может быть таким же или может быть

 rootofserver/etc/apahce/ 
    or rootofserver/etc/apahce2/ 

шага 2. как только ваш внутри папки с открытым httpd.conf файл в любом редакторе у, как ..

снова в моем случае

 its httpd.conf it might be same or it will be 
     apaceh2.conf or apache.conf 

шаг 3. после того, как вы открыли файл в любом текстовом редакторе
найдете эти строки ниже и Allowoverride установите его на Все, если оно отсутствует.(убедитесь, что 'а' Capital)

 DocumentRoot "/var/www/html" 

     # 
     # Each directory to which Apache has access can be configured with respect 
     # to which services and features are allowed and/or disabled in that 
     # directory (and its subdirectories). 
     # 
     # First, we configure the "default" to be a very restrictive set of 
     # features. 
     # 
     <Directory /> 
      Options FollowSymLinks 
      AllowOverride All 
     </Directory> 

Следующими найти эти наборы линий и набор AllowOverride для всех (убедитесь, что 'а' Capital)

 <Directory "/var/www/html"> 

     # 
     # Possible values for the Options directive are "None", "All", 
     # or any combination of: 
     # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 
     # 
     # Note that "MultiViews" must be named *explicitly* --- "Options All" 
     # doesn't give it to you. 
     # 
     # The Options directive is both complicated and important. Please see 
     # http://httpd.apache.org/docs/2.2/mod/core.html#options 
     # for more information. 
     # 
      Options Indexes FollowSymLinks 

     # 
     # AllowOverride controls what directives may be placed in .htaccess files. 
     # It can be "All", "None", or any combination of the keywords: 
     # Options FileInfo AuthConfig Limit 
     # 
      AllowOverride All  

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

chmod 0666 to the file 

команда

"sudo chmod 0666 /etc/httpd/httpd.conf" 

копировать вставить и нажмите клавишу ВВОД в командной строке interface.make, что имя файла такой же, как на вашем сервере . а также маршрут .

При даже после всех этих изменений ваших изображений продукта еще не загружаются, то

Гото ваш консоли CDN и установить происхождения, как и самого вашего веб-сервер. Не используйте ведро s3.

бывший, если ваш сайт доменное имя (в то время как развитие) может быть

ec2.userxxxxxxxx.aws.com (if amazon ec2) 

или любой другой сервис, если вы используете предоставить это имя в качестве координат для вашего КДС. так как это будет поддерживать синхронизацию файлов между вашим сервером и cdn, где в качестве ведра s3 вам необходимо вручную обновить основную копию вашего сайта. (Есть способы достижения синхронизации между s3 и сервером, но я еще не пробовал)

выполните следующие действия, и это может привести к тому, что ваш сайт будет работать исправно. Это сработало отлично для меня, и сайт теперь дружелюбен к URL и включен медиа-сервер.

+0

спасибо, я попробую это решение. – Jeremy

+0

это также работает для меня, ключевой момент вместо использования ведро S3 вам нужно использовать сам сайт как источник. Но я все еще не уверен, как будет работать кодирование содержимого gzip. –

+0

S3 будет следить за кодировкой содержимого gzip из вашего источника, S3 не сможет добавлять заголовки в файлы. –

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