Я загрузил и установил Magento 2 с https://github.com/magento/magento2
Но я получаю сообщение об ошибке 404 для скриптов и CS, расположенных в http: // localhost / magento2 / pub / static /
Я проверил, движок переписывания Apache включен. Но все же файлы css и js не загружаются.
Когда я пытаюсь получить доступ к файлу прямо из браузера, он выдает следующее исключение.
Cannot create a symlink for "D:/xampp/htdocs/magento2/lib/web/mage/calendar.css" and place it to "D:/xampp/htdocs/magento2/pub/static/frontend/Magento/blank/en_US/mage/calendar.css" Warning!symlink(): Cannot create symlink, error code(1314)
#0 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\Filesystem\Directory\Write.php(155): Magento\Framework\Filesystem\Driver\File->symlink('D:/xampp/htdocs...', 'D:/xampp/htdocs...', Object(Magento\Framework\Filesystem\Driver\File))
#1 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink.php(30): Magento\Framework\Filesystem\Directory\Write->createSymlink('lib/web/mage/ca...', 'frontend/Magent...', Object(Magento\Framework\Filesystem\Directory\Write))
#2 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\Publisher.php(65): Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink->publishFile(Object(Magento\Framework\Filesystem\Directory\Write), Object(Magento\Framework\Filesystem\Directory\Write), 'lib/web/mage/ca...', 'frontend/Magent...')
#3 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\View\Asset\Publisher.php(49): Magento\Framework\App\View\Asset\Publisher->publishAsset(Object(Magento\Framework\View\Asset\File))
#4 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\StaticResource.php(118): Magento\Framework\App\View\Asset\Publisher->publish(Object(Magento\Framework\View\Asset\File))
#5 D:\xampp\htdocs\magento2\lib\internal\Magento\Framework\App\Bootstrap.php(245): Magento\Framework\App\StaticResource->launch()
#6 D:\xampp\htdocs\magento2\pub\static.php(13): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\StaticResource))
#7 {main}
Моя операционная система - Windows 7, и я использую сервер xampp.
Ответы:
Когда не в производственном режиме, Magento 2 будет пытаться создать символические ссылки для некоторых статических ресурсов. Вы можете изменить это поведение, выполнив следующие действия.
Откройте
app/etc/di.xml
и найдитеvirtualType name="developerMaterialization"
раздел. В этом разделе вы найдете элемент,name="view_preprocessed"
который необходимо изменить или удалить. Вы можете изменить его, изменив содержимое сMagento\Framework\App\View\Asset\MaterializationStrategy\Symlink
наMagento\Framework\App\View\Asset\MaterializationStrategy\Copy
Удалите файлы в pub / static, чтобы избавиться от любых существующих символических ссылок. Вы можете быть осторожны, чтобы не удалить
.htaccess
файл.Это должно решить вашу ошибку с символической ссылкой.
источник
Я столкнулся с этой проблемой и пытаюсь разобраться. Я согласен с Крисом О'Тулом. Я добавлю дополнительный шаг. Мои шаги
Замените символическую ссылку на Копировать слово. Сохранить.
Удалить все папки в pub / static. Не удаляйте .htaccess и другие файлы.
Запустите xampp от имени администратора. Запустите командную строку от имени администратора. Беги
grunt exec:<theme name>
.Вы увидите, что он работает нормально.
Тогда вы можете запустить
grunt less:<theme name>
Наконец вы можете запустить
grunt watch
Когда вы делаете какие-либо изменения в меньшем количестве файлов (_theme.less или _extend.less), он автоматически создает CSS-файлы style-l и style-m в папке pub / static.
Я бегу magento 2.1 в Windows 10.
источник
Не забудьте обновить права доступа к файлам после того, как Magento создаст эти новые статические файлы. Они не принадлежат www-данным, поэтому они выдадут 404.
источник
В моем случае это было не потому, что мой
app/etc/di.xml
имел,Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink
как упомянуто @Chrish. Это было потому, что один из моих модулей имел ошибку сценария в моем.phtml
файле. Я бы порекомендовал проверить ваш код в.phtml
файле. В моем случае это было решено путем внесения исправлений в мой файл сценарияinitialize.phtml
.источник
Я нашел важным использовать правильное разрешение для apache с mod_php для папок pub / static и var /. Из статьи Алана Шторма http://alanstorm.com/magento_2_adding_frontend_files_to_your_module
Вы должны выполнить это в терминале сервера. Это исправило ошибку 404 для скриптов и изображений.
ps но это для линукса.
источник
chmod -R 777 /path/to/magento2/pub/static /path/to/magento2/var
Я думаю, что правильный способ сделать это из командной строки: перейдите в каталог magento и выполните следующую команду:
Пустой
var/cache
каталог и проверка.источник
Просто удалил все файлы под
pub/static/*
. Magento будет автоматически генерировать статические файлы для вас при загрузке страницы.источник
Вы должны запустить Xampp (apache, nginx) и т. Д. В качестве администратора, чтобы позволить ему создавать символические ссылки под Windows (протестировано с Windows 10).
источник