При локальной установке Magento 2 файлы не создаются в папке pub / static

15

Я только что установил Magento 2 Community Edition с примерами данных (загруженными с их сайта и не установленными с помощью composer) локально через MAMP. Процесс установки прошел успешно, но все файлы в папке pub / static отсутствуют, кроме .htaccess. Это означает, что все css, js и т. Д. Возвращают 404 как для внешнего, так и для внутреннего интерфейса.

Я провел несколько часов, пытаясь исправить это без удачи. Это то, что я сделал до сих пор:

  • Изменено Options Indexes FollowSymLinks AllowOverrideс «None» на «All» в /MAMP/conf/apache/httpd.conf и перезапущено MAMP
  • Убедился, что LoadModule rewrite_module modules/mod_rewrite.soне закомментирован в httpd.conf
  • Настройте домен разработки (magento.dev) в MAMP
  • Пробовал работать php bin/magento setup:static-content:deployв корне magento.dev с помощью терминала. Это однако возвращает:

Неустранимая ошибка: класс «Locale» не найден в /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php в строке 64

  • Раскомментировал и изменил RewriteBase RewriteBase /на .htaccess-файл в корневом каталоге magento.dev.
  • Установите Magento в режим разработки
  • Очищаем кеш вручную и php bin/magento setup:static-content:deployснова запускаем

Большинство руководств и сообщений на форуме говорят мне, чтобы я запускался, php bin/magento setup:static-content:deployно я не уверен, правильно ли я это делаю.

ОС: OSX 10.11.2

Версия MAMP: 3.5

Версия PHP: 7.0

Версия Apache: 2.4.16

Версия MySQL: 5.6.25

Любая помощь будет оценена.

Skovsgaard
источник
Я на 2.2.2 установлен на сервере CentOS. Ничто на этой странице не работает. Чтобы иметь какой-либо стиль, я должен бежать php bin/magento setup:static-content:deploy -f и ждать 80 секунд.
Крис К

Ответы:

15

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

Я хотел бы, чтобы вы загрузили Magento 2 zip из magentocommerce.com/download, создали новую базу данных в phpmyadmin , распаковали zip в папку 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

Я лично попробовал это на своем локальном хосте, используя MAMP, EasyPHP DevServer, Xampp и Wampp, и успешно установил и использовал Magento 2. Для дальнейшей проверки вы можете проверить эту ссылку: Magento 2 CSS и JavaScript не загружаются из правильной папки

РЕШЕНИЕ № 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 ».

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

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

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

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

Файяз Хаттак
источник
Ответ отредактирован.
Файяз Хаттак
Greate! Я попробовал решение 1, и оно работает для меня .. Спасибо Khatak sb
Мухаммед Азим
Добро пожаловать @MuhammadAzeem
Файяз Хаттак
@RajaKhoury Добро пожаловать!
Файяз Хаттак
Решение 1 работает для меня! Спасибо большое !!
Даниэль Сильва
5

Попробуйте запустить команду ниже

php bin/magento setup:static-content:deploy

И если при выполнении этой команды выдается какая-либо ошибка, например, отсутствует файл, как вы уже сказали, сравните файловую структуру вашего проекта со свежей magento2файловой структурой. Если какой-либо файл отсутствует в вашем проекте, скопируйте соответствующий файл в ваш проект.

А если у вас возникла какая-либо другая ошибка, опубликуйте ошибку в своем вопросе, чтобы кто-то мог ответить на ваш вопрос

Кейур Шах
источник
Спасибо за быстрый ответ. Я это сделаю. Где именно и как мне запустить эту команду?
Сковсгаард
@Skovsgaard вы можете запустить эту команду из своего терминала, но убедитесь, что вы находитесь в каталоге magento2 из терминала
Кейур Шах
Кажется, что нет файлов отсутствуют. Установленный Magento, очевидно, содержит больше файлов, которые связаны с процессом установки. Я получаю эту ошибку: Fatal error: Class 'Locale' not found in /Applications/MAMP/htdocs/magento.dev/vendor/magento/framework/Locale/Bundle/DataBundle.php on line 64после запуска php bin/magento setup:static-content:deployв корневом каталоге.
Сковсгаард
Я не был действительно полезным. Сожалею.
Сковсгаард
2

Похоже, intlрасширение не загружено в вашу консольную версию php. Пожалуйста, убедитесь, что вы используете ту же версию / настройки для Apache и Cli версии PHP.

MacOsX имеет предустановленную версию php, и некоторые пакеты, которые устанавливают php, не изменяют символическую ссылку для сеанса терминала. В результате вы можете установить разные версии php одновременно.

PS: я предлагаю использовать vagrant на Mac OS. это работает очень хорошо, если использовать NFS для обмена файлами

Канди
источник
Ага! Предустановленный php (cli) - только 5.5.30. Предварительно установленный Apache - 2.4.16 (я не знаю, как проверить apache-версию MAMP, если MAMP также устанавливает Apache отдельно). Поэтому я должен обновить предустановленную версию до 7, а также установить расширение intl (cli или mamp?)? Бродяга кажется слишком продвинутым для такого нуба, как я.
Сковсгаард
Я не могу ответить на вопросы, относящиеся к Mac, но есть по крайней мере два способа проверить вашу версию PHP: php -v(которая показывает, какая версия команд PHP запускается) и использовать phpinfo.php , который показывает, какую версию PHP использует веб-сервер.
Стив Джонсон
Итак, MAMP работает на PHP 7 и Apache 2.2.29. Моя локальная машина работает на PHP 5.5.30 и Apache 2.4.16. Итак, следующий шаг - обновить PHP на локальной машине до 7?
Сковсгаард
Пожалуйста, попробуйте использовать полный путь к бинарному
файлу
2

Если ничего не помогает, удалите эти каталоги:

rm -rf pub/static/*    # DO NOT DELETE .htaccess
rm -rf var/view_preprocessed/*
php bin/magento setup:static-content:deploy

Это будет работать, если у вас сломаны символические ссылки в этих каталогах.

snez
источник
1
.htaccess никогда не должен быть удален. Я также сделал эту ошибку и потратил впустую часы
Тахир Ясин
1

очистить кэш страницы, di, view_process, кеш

затем дать правильное разрешение на папки и файлы.

затем запустить php bin/magento setup:static-content:deployиз корневой папки.

проверьте паб / статический.

Я надеюсь, что это поможет вам.

дениш вачхани
источник
Куда и как мне бегать clear page_cache, di ,view_process, cache? Это локальная установка, так как администратор супер моего компьютера, я имею все разрешения на чтение / запись. Есть ли другие разрешения, о которых я не знаю?
Сковсгаард
если вы используете локальный, то дайте полное разрешение на корневую папку
отрицать vachhani
все папки находятся в var / clear все папки и дают полное разрешение на папку.
дениш вачхани
1

Вы установили composerи запустили composer initв каталоге magento2? Если нет, попробуйте, затем выполните командуphp bin/magento setup:static-content:deploy

Куан Ле
источник
Composer установлен на моей машине, да, но я не использовал его для установки Magento 2. Я просто скачал .zip с их сайта, распаковал и установил. Если я запускаю composer initcomposer, то просит меня настроить конфигурацию composer.json, так что, думаю, это не поможет.
Сковсгаард