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.xmly 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\SymlinkaMagento\Framework\App\View\Asset\MaterializationStrategy\CopyElimine los archivos en pub / static para deshacerse de los enlaces simbólicos existentes. Es posible que tenga cuidado de no eliminar el
.htaccessarchivo.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 watchCuando 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.xmlteníaMagento\Framework\App\View\Asset\MaterializationStrategy\Symlinklo mencionado por @Chrish. Fue porque uno de mi módulo tenía un error de script en mi.phtmlarchivo. Recomendaría verificar su código en el.phtmlarchivo. 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/varCreo que la forma correcta de hacerlo es desde la línea de comandos: cd a su directorio magento y ejecute el siguiente comando:
var/cacheDirectorio 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