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

35

Я надеюсь, что кто-то здесь может помочь. Я пытаюсь установить и запустить Magento 2 на WAMP на компьютере с Windows 7 без особого успеха.

Прыгнув через множество различных обручей для загрузки сайта, я столкнулся с 404 ответами, без стилей и загрузкой javascript.

Спецификация выглядит следующим образом:

  • Magento-CE-2.0.0 + Образцы
  • Apache 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

Когда я смотрю на консоль браузера, среди ошибок появляются попытки доступа к файлам, которых нет в папке pub / static. Папка "frontend" загружается, и большинство файлов присутствуют. Однако я заметил, что некоторые CSS-файлы отсутствуют.

При запуске команды PHP deploy

php bin/magento setup:static-content:deploy

что упоминается в других сообщениях, я получаю ошибку ниже. Я не уверен, как это исправить?

Неустранимая ошибка: допустимый объем памяти 134217728 байт исчерпан (попытался выделить 64 байта) в C: \ wamp \ www \ magento \ vendor \ oyejorge \ less.php \ lib \ Less \ Visitor.php в строке 45

Любая помощь будет принята с благодарностью.

ОБНОВИТЬ

Я увеличил допустимый объем памяти PHP и снова запустил скрипт php deploy. На этот раз это не ошибка и выполнено полностью. Однако та же проблема, что и описанная выше, все еще присутствует. Сайт загружается, но каждая попытка загрузить любую страницу или ресурс приводит к ошибке «404 страница не найдена» без применения стиля.

Пожалуйста, смотрите ниже ошибки в Chrome Inspector

введите описание изображения здесь

E.Gain
источник
@TejabhagavanKollepara Этот вопрос был задан в первую очередь, он хорошо сформирован, имеет хорошие ответы, поэтому ИМО другой вопрос - кандидат в дураки, а не этот ... Кстати, если флаг на другом вопросе как дубликат этого вопроса был отклонен , нет необходимости отмечать этот вопрос как дубликат другого, чтобы попытаться достичь того же самого.
7ochem
См. Также ответ SA - новая установка Magento находится в режиме «по умолчанию» (а не «в производстве») и не требует развертывания статического контента, что вам и говорят во всех других ответах.
Янис Элмерис

Ответы:

50

РЕШЕНИЕ № 1 (ЕСЛИ ВЫ ХОТИТЕ РЕДАКТИРОВАТЬ XML-ФАЙЛ)

Я бы скачать Magento 2 почтовый индекс от нравится magentocommerce.com/downloadс образцами данных, создавать новые БД в PHPMyAdmin , распакуйте в HTDOCS папке. Установите Magento 2, но не используйте localhost, используйте 127.0.0.1 в URL магазина и URL администратора. После успешной установки НЕ запускайте magento.

Теперь мы собираемся очистить / удалить кэши и сеансы Magento 2. Перейдите по следующим путям и удалите все:

ROOT > var > cache > *DELETE ALL*
ROOT > var > page_cache > *DELETE ALL*
ROOT > var > session > *DELETE ALL*

Когда Magento 2 не находится в рабочем режиме, он пытается создать символические ссылки для некоторых статических ресурсов на локальном сервере. Мы должны изменить это поведение Magento 2, перейдя к редактированию ROOT > app > etc > di.xmlфайла. Откройте di.xmlв вашем любимом редакторе кода, найдите virtualType name="developerMaterialization"раздел. В этом разделе ниже вы найдете элемент, <item name="view_preprocessed" xsi:type="object">который необходимо изменить. Вы можете изменить его, изменив следующий контент:

Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink

Для того, чтобы:

Magento\Framework\App\View\Asset\MaterializationStrategy\Copy

Теперь последний шаг, также удалите старые файлы, созданные в ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

РЕШЕНИЕ № 2

Установите Composer. Теперь я хотел бы, чтобы вы загрузили Magento 2 zip из magentocommerce.com/download, создали новую базу данных в phpmyadmin , распаковали zip в папку htdocs . Установите Magento 2, но не используйте localhost, используйте 127.0.0.1 в URL магазина и URL администратора. После успешной установки НЕ запускайте magento.

Теперь мы собираемся проверить установку Composer, развернуть статический контент, очистить / очистить кеш Magento и переиндексировать блоки Magento 2. Чтобы выполнить все вышеуказанные действия, нажмите WINDOWS KEY + R, чтобы открыть диалоговое окно RUN, и введите «cmd», чтобы открыть командную строку.

Введите « cd PATH_TO_YOUR_MAGENTO2_FILES », чтобы войти в каталог Magento 2 ROOT.

Теперь, чтобы проверить установку Composer в указанном каталоге, введите « composer install ».

Если вы получили ошибку на этом этапе, проверьте установку Composer.

На этом этапе мы настраиваем статический контент для развертывания в нашем магазине Magento. Для этого введите « php bin / magento setup: static-content: deploy ».

Для тех, кто на Magento 2.2.x

php bin/magento setup:static-content:deploy -f

Если вы получили какую-либо ошибку, проверьте переменную среды PHP.EXE и PHP.INI

Очистите / очистите кэш Magento, введя « php bin / magento cache: flush » в CMD.

И наконец, для Reindex Magento Static Blocks введите « php bin / magento indexer: reindex ».

Вы закончили успешную установку Magento 2.

Файяз Хаттак
источник
4
Также в php.ini измените max_execution_time на 500, memory_limit до 2048M, post_max_size до 2048M, upload_max_filesize до 2048M и max_file_uploads до 2048.
Файяз Хаттак,
Спасибо за ваш быстрый ответ. Я сделал эти изменения, но они не имели никакого эффекта. Я перезапустил WAMP-сервер после внесения изменений. Я отредактировал вопрос, чтобы показать ошибки, которые я вижу в инспекторе Chrome
E.Gain
О, мне жаль упоминать еще одну вещь: сначала удалите весь кеш и сессию, внесите изменения в di.xml, а также удалите все из ROOT> pub> static> УДАЛИТЬ ВСЕ, КРОМЕ .HTACCESS
Файяз Хаттак,
1
@MagenX Это мнение каждого человека о том, какой инструмент он предпочитает использовать. В ваших глазах вы критикуете все как молоток, а не делитесь своим взглядом на решение.
Файяз Хаттак
1
Решение № 2 сработало как шарм, спасибо, что сэкономили мне часы, если не дни, занимаясь этой проблемой!
Джонатан Марзулло
11

вам просто нужно обновить файл apache2.conf.

На Ubuntu 16.04

  1. Откройте и отредактируйте файл /etc/apache2/apache2.conf
  2. Перейдите к месту в файле apache2.conf <Directory /var/www/>
  3. Изменить "AllowOverride None"на"AllowOverride All"
  4. Сохранить файл
  5. Перезапуск apache2 -> sudo service apache2 restart
SA
источник
Было так сложно найти этот ответ! Везде, где другие люди предлагают (повторно) развертывать статический контент, даже если новая установка Magento находится в режиме «по умолчанию» (не «производственный») и не требует развертывания статического контента.
Янис Элмерис
10

Если вы столкнулись с проблемой дизайна загрузки страниц css и js после установки в magento2

пожалуйста, следуйте следующему шагу:

откройте терминал и перейдите к корню magento web

 $ cd / var / www / html / magento2 

Шаг 1.

 $ php bin / magento setup: static-content: deploy

Шаг 2.

$ php bin / magento indexer: reindex

Шаг 3.

убедитесь, что apache «rewrite_module» включен, а затем перезапустите сервер

Шаг 4

$ chown -R www-data: www-data / var / www / html / magento2 

Шаг 5

 $ chmod -R 777 / var / www / html / magento2 

Шаг 6

удалить папку кеша в var / cache

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

Дайте мне знать, если возникнет проблема. :)

http://gotechnies.com/css-javascript-files-loading-magento-2-installation/

Эрвинд
источник
1
Как запустить эти команды в Windows?
Хасан Али
1
Это работает для меня только для первых 3 шагов. :)
17
6
Не так умно, чтобы установить разрешение 777 для всех файлов на сервере.
Крис Гудн
1
Я не очень впечатлен шагом, когда вы даете полное разрешение на чтение для всей установки magento.
Циклон-код
1
установка разрешений на 777 - плохой совет, но, надеюсь, любой сисадмин будет знать лучше.
Джон Холл
6

Для меня это было просто потому, что mod_rewrite не был включен.

sudo a2enmod rewrite

а также

service apache2 restart

Хаим
источник
1
идеальное решение !!! +1 :)
SagarPPanchal
6

У меня была та же проблема, решенная добавлением

sudo nano /etc/apache2/apache2.conf

Изменить это

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

к этому

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Вы также должны включить mod_rewriteмодуль apache2 и insall ssl сертификаты:

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart
Chaitanya
источник
1
Это, плюс rm -rf var / * сработало для меня. Отличное и хорошее место.
Джон Холланд
6

Вот самое простое решение, если показать имя версии в пути CSS

как: pub / static / version323334 /

затем запустите этот запрос в MySQL

INSERT INTO core_config_data (path, value) VALUES ('dev/static/sign', 0)
ON DUPLICATE KEY UPDATE value = 0;

после этого очистите кеш конфига

 bin/magento cache:clean config

Вы также можете отключить статическую версию файла от администратора

введите описание изображения здесь

Сурендра Кумар Ахир
источник
4
Это сработало для меня, спасибо. Однако запрос должен быть исправлен INSERT INTO core_config_data (path, value) VALUES ('dev / static / sign', 0);
Афтаб Навид
что такое путь и ценности
zus
путь, значение являются полями name, я уже определил значения (dev / static / sign, 0), просто запустите этот sql, это должно работать
Surendra Kumar
идеальное решение !!! сделал мой день :) +1
SagarPPanchal
5
  1. Попробуйте отключить кеш, если вы не отключили его раньше
  2. Убедитесь, что у вас установлена ​​последняя версия Magento с чистым кодом. Если вы что-то изменили или настроили, обязательно исправьте все ошибки.
  3. Выполните несколько команд ниже, может помочь вам.

    php bin/magento indexer:reindex

    php bin/magento cache:flush

Удалить папки в

  • pub/static/frontend/*
  • var/cache
  • var/view_preprocessed/*

  • php bin/magento setup:static-content:deploy

mrtuvn
источник
3

В моем случае я случайно удалил .htaccessфайл из ROOT/pub/и ROOT/pub/staticпапки. Затем он начинает работать, когда я возвращаю его обратно .

Elavarasan
источник
2

Решено !!!

Выполните следующие команды в интерфейсе CLI вашей корневой папки Magento2:

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

Затем удалите папку var этой командой в корне magento2.

rm -rf var/*

Затем обновите свою домашнюю страницу и панель администратора. Работает !!!!! Круто !!!!

Мукеш Праджапати
источник
1

У меня была такая же проблема с 404s. Я решил это, убедившись, что директива VirtualHost в Apache была правильной. Вот мой VirtualHost:

<VirtualHost *:80>
    DocumentRoot /var/www/magento2
    ServerName magento-ce-2.1.6
    <Directory "/var/www/magento2">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>
Colin
источник
И можете ли вы также сказать, что было не так раньше? В противном случае этот пример не сильно поможет другим.
Фабиан Шменглер
0

У меня была та же проблема, что и у OP, и это было просто потому, что я установил свой языковой стандарт en_AU, поэтому при использовании команды развертывания по умолчанию генерировалось только en_USсодержимое. Вы должны добавить локаль, которую вы фактически используете, к EN команды, например так:

php bin/magento setup:static-content:deploy en_US en_AU
Дейв
источник
0

Я попробовал вышеуказанные решения. Но это не помогло мне. Несмотря на это, я использовал те же команды, которые они упоминали с изменениями последовательности. Они есть,

  1. очистить кеш, composer_home, генерация, журнал, page_cache, tmp и view_preprocessed из каталога var

  2. выполните следующие команды одну за другой.

php bin / magento indexer: reindex

php bin / magento cache: flush

php bin / magento setup: static-content: deploy

Я надеюсь, что это может помочь кому-то, как я.

Т.С. Гухан
источник
0

Отключить mod_pagespeed

Pagespeed обрабатывает «кэшированный» экземпляр вашего контента с аббревиатурой, то есть, если это обычный файл.

image.css

Это будет установлено следующим образом.

image.pagespeed.css

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

ответчик быстрой поддержки кометы, и это решило мою проблему

CDzWebDev
источник
0

Для Ubuntu 18.04 (Bionic). Я использовал следующие шаги для статической загрузки файлов.

После завершения установки:

Убедитесь, что модуль apache 'rewrite' включен, если нет, выполните следующие действия.

  • cd /etc/apache2
  • Команда Run a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

Затем внесите следующие изменения

Изменить с:

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

в

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Затем перезапустите Apache

sudo service apache2 restart

или

sudo /etc/init.d/apache2 restart

Затем измените разрешения для <magento root director>

  • chmod -R 774 /var/www/html/<magento root director>

Затем разверните статический контент

  • php bin/magento setup:static-content:deploy -f (-f требуется, если вы находитесь в разработке env)

Затем очистите кеш и переиндексируйте

  • <magento root directory> php bin/magento cache:flush
  • <magento root directory> php bin/magento indexer:reindex

ИЛИ

  • <magento root directory> rm -R /var/cache*

Затем перейдите на свою домашнюю страницу, используя

  • 127.0.0.1/your_configured_url вместо того localhost/your_configured_url
FarhanS
источник
0

Ditch composer и установите, используя новейший zip отсюда

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

Шанкар Тьягараджан
источник