[Решено] Стандартный SEO и JCE - картинки в статьях не отображаются

  • 34 Ответов
  • 21660 Просмотров

0 Пользователей и 3 Гостей просматривают эту тему.

*

Оффлайн boreus

Включен стандартный SEO:
Цитировать
Включить SEO   - Да
Использовать mod_rewrite  - Да
htaccess.txt переименован в .htaccess, разкоменчен RewriteBase /
Результат - не отображаются картинки в статьях. Причем самое интересное, что на главной все отображается как надо, в других компонентах тоже(использую SectionEx).
А вот когда использую ссылки, в которых фигурирует com_content - все картинки херятся.
Путь к картинке в html коде страницы до включения SEO и после не изменился:
Цитировать
<img src="images/stories/dir1/dir2/dir3/thumbs/t_b.jpg" />
но если посмотреть правой клавишей свойства неотображенной картинки, там вот такой адрес:
Цитировать
http://www.site.com/nazvanie_punkta_menu/nazvanie_podpunkta_menu/images/stories/dir1/dir2/dir3/thumbs/t_b.jpg
Это наблюдается только в статьях, все остальное - css, картинки шаблона, картинки в других компонентах и модулях грузятся нормально.

Понял откуда берутся неправильные пути, но все еще не понятно как это решить.
Уточнение:
картинки не отображаются только в статьях расположенных в пунктах 2го уровня меню.
Проблема скорее всего в JCE, который обрезает начальный слэш в относительном пути картинки.
Отредактировал статью без JCE, поставил слэш - картинки отображаются как положено. Но у меня больше 70 статей, в каждой по 10-15 картинок!
Как автоматизировать это дело?
Возможно ли подправить что-то в JCE, чтоб хотябы при сохранении статей он доставлял первый "/" если такового не стоит?
« Последнее редактирование: 25.05.2009, 21:13:28 от boreus »

*

Оффлайн boreus

Проблему решил вставив в <head> шаблона
Код: (php) [Выделить]
<base href="http://www.site.com" />Все картинки везде отображаются.

Теперь, если посмотреть код страницы, у меня два тэга <base>, первый - который Joomla сама ставит, второй - который вставил я.
Хочется узнать правильно ли это?
Скажите, кто шарит, я никаких стандартов не нарушил? Критично это вообще - два тэга <base>?
« Последнее редактирование: 25.05.2009, 19:29:09 от boreus »

*

Оффлайн boreus

W3C:
"The <base> tag specifies a default address or a default target for all links on a page"
Перевод:
"Тэг <base> определяет адресс по-умолчанию или цель по-умолчанию для всех ссылок на странице"

То есть фактически это часть ссылки, которая подставляется перед любым относительным путем на странице, если такой встречается.
Joomla при включенном SEF вставляет в этот тэг путь составленный по активным пунктам меню, а JCE при вставке картинок подразумевает, что в <base> будет корень сайта. Отсюда конфликт и проблема с отображением картинок с относительными путями.

Чтобы исправить ситуацию, не переколбашивая все пути к картинкам на сайте, находим файл
libraries/joomla/document/html/renderer/head.php и в 66й строке вместо $document->getbase() пишем JURI::base()
Теперь в <base> записан корень сайта и все относительные пути читаются корректно.

Проблема решена. Тема исчерпана. Кому надо - пользуйтесь.
Ура!
« Последнее редактирование: 25.05.2009, 21:29:22 от boreus »

W3C:
"The <base> tag specifies a default address or a default target for all links on a page"
Перевод:
"Тэг <base> определяет адресс по-умолчанию или цель по-умолчанию для всех ссылок на странице"

То есть фактически это часть ссылки, которая подставляется перед любым относительным путем на странице, если такой встречается.
Joomla при включенном SEF вставляет в этот тэг путь составленный по активным пунктам меню, а JCE при вставке картинок подразумевает, что в <base> будет корень сайта. Отсюда конфликт и проблема с отображением картинок с относительными путями.

Чтобы исправить ситуацию, не переколбашивая все пути к картинкам на сайте, находим файл
libraries/joomla/document/html/renderer/head.php и в 66й строке вместо $document->getbase() пишем JURI::base()
Теперь в <base> записан корень сайта и все относительные пути читаются корректно.

Проблема решена. Тема исчерпана. Кому надо - пользуйтесь.
Ура!

libraries/joomla/document/html/renderer/head.php  где искать???
у меня "название сайта"/httpdocs/папки самой Joomla...

*

Оффлайн boreus

libraries/joomla/document/html/renderer/head.php  где искать???
В смысле?
Заходишь в директорию установленной Joomla, там находишь папку "libraries", заходишь в нее, там находишь папку "joomla", заходишь в нее и т.д.

В смысле?
Заходишь в директорию установленной Joomla, там находишь папку "libraries", заходишь в нее, там находишь папку "joomla", заходишь в нее и т.д.
У тебя какя версия??? У меня  1.0.15 Lavra Edition 2008.Директория установленной Joomla у меня корень сайта. Папки стандартные - админ, кеш, компоненты, дмдокументы, едит, хелп, имадже, инклудс, язык, мамботы, медиа, модули, шаблоны. И ВСЕ!

*

Оффлайн boreus

а теперь посмотри внимательно на ветку форума, в которой мы находимся
" > Joomla 1.5 > Расширения >"
:)

*

fox-malder

genatsvale

поищи в /httpdocs/libraries/joomla/document/html/renderer/head.php

А лучше сделай резервную копию сайта и базы и установи Joomla 1.5 должно получиться.

У тебя на сервере стоит Ideco ICS - зайди на него с помощью putty.exe введи команду menu и с помощью штатных задач можешь сделать резервную копию сайта и баз данных и если я не ошибаюсь там есть функция обновления движка сайта и функция обновления движка форума.
« Последнее редактирование: 15.07.2009, 12:43:11 от fox-malder »

а теперь посмотри внимательно на ветку форума, в которой мы находимся
" > Joomla 1.5 > Расширения >"
:)
Тормознул))))))))

*

Оффлайн nowik

W3C:
"The <base> tag specifies a default address or a default target for all links on a page"
Перевод:
"Тэг <base> определяет адресс по-умолчанию или цель по-умолчанию для всех ссылок на странице"

То есть фактически это часть ссылки, которая подставляется перед любым относительным путем на странице, если такой встречается.
Joomla при включенном SEF вставляет в этот тэг путь составленный по активным пунктам меню, а JCE при вставке картинок подразумевает, что в <base> будет корень сайта. Отсюда конфликт и проблема с отображением картинок с относительными путями.

Чтобы исправить ситуацию, не переколбашивая все пути к картинкам на сайте, находим файл
libraries/joomla/document/html/renderer/head.php и в 66й строке вместо $document->getbase() пишем JURI::base()
Теперь в <base> записан корень сайта и все относительные пути читаются корректно.

Проблема решена. Тема исчерпана. Кому надо - пользуйтесь.
Ура!

Спасибо огромнейшее и огромный респект таким людям как ВЫ!
Все классно стало работать!
Я не гордый... я учусь...
======================================================
Веду блог новостей на сайте Цитата - блог свежих и популярных новостей
 сайты Справочник сельского электрика- все про электричество или
Топонимика-сайт об именах собственных

Цитировать
Чтобы исправить ситуацию, не переколбашивая все пути к картинкам на сайте, находим файл
libraries/joomla/document/html/renderer/head.php и в 66й строке вместо $document->getbase() пишем JURI::base()
Теперь в <base> записан корень сайта и все относительные пути читаются корректно.

Проблема решена. Тема исчерпана. Кому надо - пользуйтесь.
Ура!


Нифига не вышло, после этого не могу зайти не на сайт, ни в админку.
Сообщает ошибку
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/ukrshare/public_html/libraries/joomla/document/html/renderer/head.php on line 66

*

Оффлайн boreus

Странная какая ошибка. А заменено все верно, без опечаток?

Погуглил.
Этой проблемы уже нет в PHP 5.3. Тут подробнее про это. А ошибка такая переводится на английский как Unexpected double-colon. В нете вроде есть решения как от нее избавиться. Но мне кажется тут дело именно в опечатке при внесении изменений. Проверьте.

*

Оффлайн nowik

Странная какая ошибка. А заменено все верно, без опечаток?

Погуглил.
Этой проблемы уже нет в PHP 5.3. Тут подробнее про это. А ошибка такая переводится на английский как Unexpected double-colon. В нете вроде есть решения как от нее избавиться. Но мне кажется тут дело именно в опечатке при внесении изменений. Проверьте.

после этого 66 строка будет выглядеть вот так:
это примерно 66 строка, но может быть и 67,..... воспользуйтесь поиском в редакторе...

$strHtml .= $tab.'<base href="'.JURI::base().'" />'.$lnEnd;
Я не гордый... я учусь...
======================================================
Веду блог новостей на сайте Цитата - блог свежих и популярных новостей
 сайты Справочник сельского электрика- все про электричество или
Топонимика-сайт об именах собственных

*

Оффлайн 2day

W3C:
"The <base> tag specifies a default address or a default target for all links on a page"
Перевод:
"Тэг <base> определяет адресс по-умолчанию или цель по-умолчанию для всех ссылок на странице"

То есть фактически это часть ссылки, которая подставляется перед любым относительным путем на странице, если такой встречается.
Joomla при включенном SEF вставляет в этот тэг путь составленный по активным пунктам меню, а JCE при вставке картинок подразумевает, что в <base> будет корень сайта. Отсюда конфликт и проблема с отображением картинок с относительными путями.

Чтобы исправить ситуацию, не переколбашивая все пути к картинкам на сайте, находим файл
libraries/joomla/document/html/renderer/head.php и в 66й строке вместо $document->getbase() пишем JURI::base()
Теперь в <base> записан корень сайта и все относительные пути читаются корректно.

Проблема решена. Тема исчерпана. Кому надо - пользуйтесь.
Ура!


Спасибо большое!
Joomla 1.5.18 --> shs404sef 2.0.1.531 --> JCE 1.5.7
была такая же проблема, решение подошло, правдо не сразу получилось, помог пост "nowik'а", заменил вначале в строчке что выше. Но теперь проблема решена, за что огромное спасибо еще раз.

Сделал все как здесь написано, все изображения в статьях теперь не пропадают но на главной странице все равно исчезают, в чем может быть проблема?
Вроде же правильно сделал (кэш включен, плагин кэша тоже)
   $base = $document->getBase();
      if(!empty($base)) {
         $strHtml .= $tab.'<base href="'.JURI::base().'" />'.$lnEnd;

о к вечеру все стало супер, спасибо большое!

*

Оффлайн Harier

Просьба удалить это сообщение - по ошибке написал сюда.
« Последнее редактирование: 16.09.2010, 18:07:22 от Harier »

W3C:
"The <base> tag specifies a default address or a default target for all links on a page"
Перевод:
"Тэг <base> определяет адресс по-умолчанию или цель по-умолчанию для всех ссылок на странице"

То есть фактически это часть ссылки, которая подставляется перед любым относительным путем на странице, если такой встречается.
Joomla при включенном SEF вставляет в этот тэг путь составленный по активным пунктам меню, а JCE при вставке картинок подразумевает, что в <base> будет корень сайта. Отсюда конфликт и проблема с отображением картинок с относительными путями.

Чтобы исправить ситуацию, не переколбашивая все пути к картинкам на сайте, находим файл
libraries/joomla/document/html/renderer/head.php и в 66й строке вместо $document->getbase() пишем JURI::base()
Теперь в <base> записан корень сайта и все относительные пути читаются корректно.

Проблема решена. Тема исчерпана. Кому надо - пользуйтесь.
Ура!


Всё шикарно, почти все стало работать, большое спасибо.
Но что мне делать если без www в названии - работает, а с www - нет

То есть
blabla.ru - показывает все картинки
www.blabla.ru - не показывает (пользуюсь встроенным ЧПУ)

*

vitalm

Прошу помощи. Проблема - при установке плагина вообще не отображается дизайн сайта. (только текст)
Главная страница - все Ок.

Отредактировал все как надо:

if(!empty($base)) {
            $strHtml .= $tab.'<base href="'.JURI::base().'" />'.$lnEnd;

устанавливал Plug in com_sh404SEF_RC_1.5.5.388 на Joomla 1.5.20

Может быть это у меня версия плагина корявая  :(

...
Заметил в конфигурации sh404     WARNING: $live_site missing from Joomla configuration.php file!

прописал в configuration.php   var $live_site = 'http://сайт';

заработало..

« Последнее редактирование: 17.09.2010, 02:22:50 от vitalm »

*

Оффлайн Ragivort

  • ******
  • 1010
  • [+]51 / [-]2
  • Есть мечта-стоит жить
    • Просмотр профиля
    • IT Premium
При таком решении у меня все кнопки тулбара, а именно СОЗДАТЬ МАТЕРИАЛ, В КОРЗИНУ И ТД, ведут на /administrator/# и все, кранты
Дозволь мне свершить то добро, которое я способен свершить, теперь, ибо я могу более не вернуться сюда.

*

Jekichun


[/quote
W3C:
"The <base> tag specifies a default address or a default target for all links on a page"
Перевод:
"Тэг <base> определяет адресс по-умолчанию или цель по-умолчанию для всех ссылок на странице"

То есть фактически это часть ссылки, которая подставляется перед любым относительным путем на странице, если такой встречается.
Joomla при включенном SEF вставляет в этот тэг путь составленный по активным пунктам меню, а JCE при вставке картинок подразумевает, что в <base> будет корень сайта. Отсюда конфликт и проблема с отображением картинок с относительными путями.

Чтобы исправить ситуацию, не переколбашивая все пути к картинкам на сайте, находим файл
libraries/joomla/document/html/renderer/head.php и в 66й строке вместо $document->getbase() пишем JURI::base()
Теперь в <base> записан корень сайта и все относительные пути читаются корректно.

Проблема решена. Тема исчерпана. Кому надо - пользуйтесь.
Ура!


Вам огромная благодарность за подсказку, Вы просто волшебник..Решил свою проблему на своем сайте с картинками..

*

Arthas

Зарегистрировался исключительно что бы поблагодарить.
boreus, спасибо! Реально выручил.

boreus, спасибо! Помогло со встроенным ЧПУ, все нормально теперь) Вот теперь думаю, стоит ли искать и дальше приключений на свою... хочу поставить sh404SEF и посмотреть чего будет) Этот бы совет в фак, а то искал в нете еле вышел на эту страницу, на третий день, а то как по лесу лазил.

*

Оффлайн offshore

$strHtml .= $tab.'<base href="'.JURI::base().'" />'.$lnEnd;
Спасибо!

*

skr930

Специально зарегился, чтоб поблагодарить. Огромнейшее спасибо! Все работает как часы

*

Оффлайн chikvito

При таком решении у меня все кнопки тулбара, а именно СОЗДАТЬ МАТЕРИАЛ, В КОРЗИНУ И ТД, ведут на /administrator/# и все, кранты

у меня тоже самое, как только заменяю $document->getbase() этим JURI::base() сайт полностью начинает работать. Но в админке кнопки перестают работать, вобще не понятно что вызывает ошибку, хотя и base url нормальный как на сайте, так и на админке.
Joomla последняя, стандартный чпу и JCE последний стоит.

Спасибо, очень помогли!

*

Оффлайн Sergio111

Проблема возникла в Joomla_2.5.6-Stable-Full_Package_Russian_v3.
Попробовал Ваши рекомендации - не помогают.
Вместо переменной в файле $strHtml  сейчас $buffer.
Картинки не отображаются.
Что делать? Раньше ставил Joomla_2.5.3 - картинки работали!

Сори, не работало из-за включенного плагина ZT Tools!
Отключил - всё пашет без редактирования файлов сайта!
« Последнее редактирование: 28.08.2012, 15:01:05 от Sergio111 »
Зарабатываю 46$ в день на своих сайтах <a target="_blank" href="http://www.sape.ru/r.11b5f3471a.php">sape</a><br/>
Почему ты не зарабатываешь? Помогу зарегистрированым от меня советами.

Сори, не работало из-за включенного плагина ZT Tools!
Отключил - всё пашет без редактирования файлов сайта!
Добрый всем день. А можно без отключения плагина? Столько уже тем перерыл, но везде предлагают его отключить. Это, конечно, можно, но он добавляет интересный эффект. Не может же этот плагин быть изначально нерабочим? Может кто знает где и что нужно подправить в плагине ZT Tools?

*

Оффлайн Xavibeat

// Generate base tag (need to happen first)
       $base = $document->getBase();
      if(!empty($base)) {
         $strHtml .= $tab.'<base href="'.JURI::base().'"/>'.$lnEnd; произвел замену, но картинки так и не отображаются, в чем может быть причина. Joomla 2.5.8, php 5.2.17
встроенный SEF включен