He descargado e instalado Magento 2 desde https://github.com/magento/magento2
Pero recibo un error 404 para scripts y cs ubicados en http: // localhost / magento2 / pub / static /
Lo he comprobado, el motor de reescritura de Apache está encendido. Pero aún así, los archivos css y js no se están cargando.
Cuando intento acceder a un archivo directamente desde el navegador, aparece la siguiente excepción.
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}
Mi sistema operativo es Windows 7 y estoy ejecutando el servidor xampp.
Respuestas:
Cuando no está en modo de producción, Magento 2 intentará crear enlaces simbólicos para algunos recursos estáticos. Puede cambiar ese comportamiento haciendo lo siguiente.
Abre
app/etc/di.xml
y encuentra lavirtualType name="developerMaterialization"
sección. En esa sección encontrará un elementoname="view_preprocessed"
que debe modificarse o eliminarse. Puede modificarlo cambiando el contenido deMagento\Framework\App\View\Asset\MaterializationStrategy\Symlink
aMagento\Framework\App\View\Asset\MaterializationStrategy\Copy
Elimine los archivos en pub / static para deshacerse de los enlaces simbólicos existentes. Es posible que tenga cuidado de no eliminar el
.htaccess
archivo.Esto debería resolver su error con el enlace simbólico.
fuente
Me enfrenté a este problema y trato de resolverlo. Estoy de acuerdo con Chris O'Toole. Agregaré un paso extra. Mis pasos son
Reemplazar enlace simbólico con copiar palabra. Salvar.
Eliminar todas las carpetas en pub / static. No elimine .htaccess y otros archivos.
Ejecute xampp como administrador. Ejecute la línea de comando como administrador. Ejecutar
grunt exec:<theme name>
.Verás que está funcionando bien.
Entonces puedes correr
grunt less:<theme name>
Finalmente puedes correr
grunt watch
Cuando realice cambios en menos archivos (_theme.less o _extend.less), creará automáticamente los archivos style-l y style-m css en la carpeta pub / static.
Estoy ejecutando magento 2.1 en windows 10.
fuente
Recuerde actualizar los permisos de archivo después de que Magento cree estos nuevos archivos estáticos. No son propiedad de www-data, por lo que darán 404.
fuente
En mi caso, no fue porque
app/etc/di.xml
teníaMagento\Framework\App\View\Asset\MaterializationStrategy\Symlink
lo mencionado por @Chrish. Fue porque uno de mi módulo tenía un error de script en mi.phtml
archivo. Recomendaría verificar su código en el.phtml
archivo. En mi caso, se resolvió haciendo la corrección en mi archivo de scriptinitialize.phtml
.fuente
Me pareció importante usar el permiso correcto para el apache con mod_php para las carpetas pub / static y var /. Del artículo de Alan Storm http://alanstorm.com/magento_2_adding_frontend_files_to_your_module
Debe ejecutar eso en la terminal del servidor. Eso me solucionó el error 404 para los scripts y las imágenes.
ps Pero eso es para Linux.
fuente
chmod -R 777 /path/to/magento2/pub/static /path/to/magento2/var
Creo que la forma correcta de hacerlo es desde la línea de comandos: cd a su directorio magento y ejecute el siguiente comando:
var/cache
Directorio vacío y verificar.fuente
Acabo de eliminar todos los archivos debajo
pub/static/*
. Magento generará automáticamente los archivos estáticos para usted cuando cargue una página.fuente
Debe ejecutar Xampp (apache, nginx), etc. como administrador para permitirle hacer enlaces simbólicos en Windows (probado con Windows 10).
fuente