Magento CSS и JavaScript не загружаются из-за использования пути к файловой системе

29

Мне не удалось установить модуль с помощью Magento Connect, возникла Connection Error try again laterошибка. Следуя инструкциям разработчика модуля, я попытался исправить разрешения в корне документа с помощью:

find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod o+w var var/.htaccess app/etc
chmod 550 mage
chmod -R o+w media

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

<link rel="stylesheet" type="text/css" href="/home/user/public_html/js/calendar/calendar-win2k-1.css" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/reset.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/boxes.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/custom.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/xmlconnect/boxes.css" media="all" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/print.css" media="print" />
<link rel="stylesheet" type="text/css" href="/home/user/public_html/skin/adminhtml/default/default/menu.css" media="screen, projection" />

Я немедленно удалил расширение и попытался сопоставить перми с другого сервера с работающим Magento, но безрезультатно. У меня также:

  • Очищены локальные, APC и Magento кеши
  • Посмотрел в логах ошибок (логирование включено)
  • дважды проверил правильные значения web / unsecure / base_url и web / secure / base_url в БД
  • Перезагрузился, 3 раза;)

Minify не используется. CSS-файлы слияния включены, однако я не могу понять, как отключить без интерфейса администратора (сохранение и навигация не работают, даже когда я заменяю правильные значения на Firebug). Благодарим за любую идею!

(Вопрос, изначально опубликованный @reflexiv о переполнении стека )

Navarr
источник
Включите журнал исключений и проверьте, существуют ли все файлы.
Joseantgv

Ответы:

42

Magento, использующий URL-адреса полного пути для доступа к файлам CSS, является распространенной ошибкой, возникающей в результате двух вещей:

  • Включение слияния CSS-файлов
  • Magento не может читать / писать на носитель / в папку.

Чтобы решить эту проблему, убедитесь, что:

  • Медиа / папка существует в вашей установке Magento.
  • Медиа / папка доступна для записи на вашем веб-сервере.

Как @flochtililoch опубликовал на бирже стека :

Вы должны проверить, что apache действительно владеет каталогом мультимедиа , сначала проверив, какой пользователь apache запущен от имени , а затем соответственно изменив разрешения:

chown -R <apache_user> media
chmod -R ug+w media

Больше информации здесь: Разрешения файловой системы Magento

Navarr
источник
У меня была такая же проблема из-за слияния CSS / JS.
DmitryR
1
@DmitryR: Включение слияния само по себе не является проблемой, проблема заключается в том, что веб-сервер не может писать на носитель. Он пытается сделать это, когда объединение включено, не удается, и это приводит к. ;)
Наварр
Это имеет серьезную ошибку: он не только делает папку доступной для записи пользователем apache, но и делает ее доступной для записи всем . НЕ ДЕЛАЙТЕ ЭТОГО. Это открывает огромную дыру в безопасности.
Майкл Хэмптон
Хороший звонок. Я обновил его до ug + w вместо o + w
Navarr
3

Я только что столкнулся с очень похожей проблемой при копировании сайта с живого сервера на локальный сервер Apache (MAMP). Следующее решило это для меня:

  1. очистка media/css& media/jsвсех файлов
  2. В core_config_dataнастройках таблицы базы данных :
    dev/js/merge_filesот 0 (было 1)
    dev/css/merge_css_filesдо 0 (было 1)
  3. клиринг var/cache

Перезагруженные front & backend и теперь css / js файлы обслуживаются правильно.

Freshwebs
источник