Magento 2 CSS y JavaScript no se cargan desde la carpeta correcta


35

Espero que alguien aquí pueda ayudar. Estoy intentando instalar y ejecutar Magento 2 en WAMP en una máquina con Windows 7 con poco éxito.

Después de saltar a través de los muchos y diversos aros para que el sitio se cargue, ahora me encuentro con respuestas 404 y sin estilos o carga de JavaScript.

Las especificaciones son las siguientes:

  • Magento-CE-2.0.0 + Muestras
  • Apache 2.4.9
  • PHP 5.5.12
  • MySQL 5.6.17

Cuando miro la consola del navegador, entre los errores hay intentos de acceder a archivos que no están en la carpeta pub / static. La carpeta "frontend" se carga y la mayoría de los archivos están presentes. Sin embargo, he notado que algunos archivos CSS no están presentes.

Al ejecutar el comando de despliegue PHP

php bin/magento setup:static-content:deploy

que se menciona en otras publicaciones me sale el siguiente error. No estoy seguro de cómo remediar esto?

Error fatal: tamaño de memoria permitido de 134217728 bytes agotados (intentó asignar 64 bytes) en C: \ wamp \ www \ magento \ vendor \ oyejorge \ less.php \ lib \ Less \ Visitor.php en la línea 45

Cualquier ayuda será muy apreciada.

ACTUALIZAR

Aumenté la asignación de memoria de PHP y volví a ejecutar el script de implementación de php. Esta vez no falló y se ejecutó completamente. Sin embargo, el mismo problema descrito anteriormente aún está presente. El sitio se carga, pero cada intento de cargar cualquier página o activo da como resultado un error de página 404 no encontrado sin estilo aplicado.

Consulte a continuación los errores en Chrome Inspector

ingrese la descripción de la imagen aquí


@TejabhagavanKollepara Esta pregunta se hizo primero, está bien formada, tiene buenas respuestas, por lo que la otra pregunta es un candidato engañado, no este ... Por cierto, si la bandera en la otra pregunta como un duplicado de esta fue rechazada , no es necesario marcar esta pregunta como un duplicado de la otra para intentar lograr la misma.
7ochem

Vea también la respuesta de SA: una nueva instalación de Magento está en modo "predeterminado" (no "producción") y no necesita el contenido estático implementado, que es lo que se le dice que haga en todas las otras respuestas.
Jānis Elmeris

Respuestas:


50

SOLUCIÓN # 1 (SI DESEA EDITAR ARCHIVO XML)

Me gustaría que permite descargar Magento 2 zip de magentocommerce.com/downloadcon datos de ejemplo, crear nuevos db en phpmyadmin , extracto de cremallera en htdocs carpeta. Instale Magento 2 pero no use localhost use 127.0.0.1 en la URL de la tienda y la URL del administrador. Después de una instalación exitosa NO ejecute magento.

Ahora vamos a borrar / eliminar cachés y sesiones de Magento 2. Vaya a las siguientes rutas y elimine todo:

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

Cuando Magento 2 no está en modo de producción, intentará crear enlaces simbólicos para algunos recursos estáticos en el servidor local. Tenemos que cambiar ese comportamiento de Magento 2 yendo a editar el ROOT > app > etc > di.xmlarchivo. Abre di.xmlen tu editor de código favorito, encuentra la virtualType name="developerMaterialization"sección. En esa sección a continuación, encontrará un elemento <item name="view_preprocessed" xsi:type="object">que debe modificarse. Puede modificarlo cambiando el siguiente contenido:

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

A:

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

Ahora último paso, también elimine los archivos antiguos generados en ROOT > pub > static > DELETE ALL EXCEPT .HTACCESS

SOLUCIÓN # 2

Instalar Composer. Ahora me gustaría descargar Magento 2 zip magentocommerce.com/download, crear un nuevo db en phpmyadmin , extraer zip en la carpeta htdocs . Instale Magento 2 pero no use localhost use 127.0.0.1 en la URL de la tienda y la URL del administrador. Después de una instalación exitosa NO ejecute magento.

Ahora vamos a verificar la instalación de Composer, implementar contenido estático, borrar / vaciar el caché de Magento y reindexar los bloques de Magento 2. Para realizar todas las acciones anteriores, presione WINDOWS KEY + R para abrir el cuadro de diálogo EJECUTAR y escriba "cmd" para abrir el símbolo del sistema.

Escriba " cd PATH_TO_YOUR_MAGENTO2_FILES " para ingresar en el directorio ROOT de Magento 2.

Ahora para verificar la instalación de Composer en el directorio anterior, escriba " instalación de composer ".

Si obtiene algún error en este paso, verifique la instalación de Composer

En este paso, configuraremos contenido estático para implementar en nuestra tienda Magento. Para realizar esto, escriba " php bin / magento setup: static-content: deploy ".

Para aquellos que están en Magento 2.2.x

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

Si obtiene algún error, verifique su variable de entorno PHP.EXE y PHP.INI

Borrar / Vaciar caché de Magento escribiendo " php bin / magento cache: flush " en CMD.

Y finalmente, para Reindexar Magento Static Blocks, escriba " php bin / magento indexer: reindex ".

Has terminado con la instalación exitosa de Magento 2.


44
También en php.ini cambie max_execution_time a 500, memory_limit a 2048M, post_max_size a 2048M, upload_max_filesize a 2048M y max_file_uploads a 2048.
Fayyaz Khattak el

Gracias por tu pronta respuesta. He realizado estos cambios pero no han tenido efecto. Reinicié el servidor WAMP después de hacer los cambios. He editado la pregunta para mostrar los errores que puedo ver en el inspector de Chrome
E.Gain

Oh, siento mencionar una cosa más, primero elimine todo el caché y la sesión, realice cambios en di.xml y también elimine todo de ROOT> pub> static> ELIMINAR TODO EXCEPTO .HTACCESS
Fayyaz Khattak

1
@MagenX Esta es la opinión de cada persona sobre qué herramienta prefiere usar. A sus ojos, critica todo como martillo en lugar de compartir su punto de vista de la solución.
Fayyaz Khattak

1
La solución n. ° 2 funcionó a las mil maravillas, ¡gracias por ahorrarme horas, si no días, para solucionar este problema!
Jonathan Marzullo

11

solo necesita actualizar el archivo apache2.conf.

En Ubuntu 16.04

  1. Abre y edita el archivo /etc/apache2/apache2.conf
  2. Navegue al lugar en el archivo apache2.conf <Directory /var/www/>
  3. Cambiar "AllowOverride None"a"AllowOverride All"
  4. Guarda el archivo
  5. Reiniciar apache2 -> sudo service apache2 restart

¡Fue muy difícil encontrar esta respuesta! En cualquier otro lugar, la gente sugiere (re) implementar contenido estático a pesar de que una nueva instalación de Magento está en modo "predeterminado" (no "producción") y no necesita el contenido estático implementado.
Jānis Elmeris

10

Si se enfrenta a un problema de diseño de carga de página css y js después de la instalación en magento2

por favor siga el siguiente paso:

abra la terminal y navegue a la raíz web de magento

 $ cd / var / www / html / magento2 

Paso 1.

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

Paso 2.

$ php bin / magento indexador: reindex

Paso 3.

asegúrese de que apache "rewrite_module" esté habilitado y luego reinicie el servidor

Etapa 4.

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

Paso 5

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

Paso 6

eliminar la carpeta de caché en var / cache

El paso anterior funciona. Espero que esto también funcione para ti.

Avísame si hay algún problema. :)

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


1
¿Cómo ejecutar estos comandos en Windows?
Hassan ALi

1
Funciona para mí solo para los primeros 3 pasos. :)
hln

66
No es tan inteligente establecer permisos en 777 para todos los archivos en el servidor.
Chris Gudn

1
No estoy realmente impresionado con el paso en el que le das permiso completo de lectura y escritura a toda la instalación de magento.
Cyclonecode el

1
establecer permisos en 777 es un mal consejo, pero espero que cualquier administrador de sistemas lo sepa mejor.
John Hall

6

Para mí fue simplemente porque mod_rewrite no estaba habilitado.

sudo a2enmod rewrite

y

service apache2 restart


1
¡¡¡Solución perfecta!!! +1 :)
SagarPPanchal

6

Tuve el mismo problema resuelto agregando

sudo nano /etc/apache2/apache2.conf

Modificar esto

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

a esto

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

También debe habilitar el mod_rewritemódulo Apache2 e Insall SSL Certs:

sudo a2enmod ssl

sudo a2ensite default-ssl

sudo a2enmod rewrite

sudo service apache2 restart

1
Esto, más rm -rf var / * funcionó para mí. Gran y buen lugar.
Jon Holland

6

Aquí está la solución más simple si muestra el nombre de la versión en la ruta css

como: pub / static / version323334 /

luego ejecuta esta consulta en mysql

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

después de eso, borre la caché de configuración

 bin/magento cache:clean config

También puede deshabilitar la versión del archivo estático del administrador

ingrese la descripción de la imagen aquí


44
Esto funcionó para mí, gracias. Sin embargo, la consulta debe corregirse INSERTAR EN core_config_data (ruta, value) VALUES ('dev / static / sign', 0);
Aftab Naveed

¿Qué es el camino y los valores
zus

ruta, el valor es el nombre del campo, ya defino valores (dev / static / sign, 0), solo ejecute este sql, debería funcionar
Surendra Kumar Ahir

¡¡¡Solución perfecta!!! hizo mi día :) +1
SagarPPanchal

5
  1. Intente deshabilitar el caché si no lo deshabilita antes
  2. Asegúrese de tener la última versión de Magento con código limpio. Si modifica o personaliza algo, asegúrese de corregir todos los errores.
  3. Ejecutar varios comandos a continuación puede ayudarlo.

    php bin/magento indexer:reindex

    php bin/magento cache:flush

Eliminar carpetas en

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

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


3

En mi caso, eliminé accidentalmente .htaccessarchivos ROOT/pub/y ROOT/pub/staticcarpetas. Luego comienza a funcionar cuando lo revierto .


2

Resuelto !!!

Ejecute los siguientes comandos en la interfaz CLI de su carpeta raíz Magento2:

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

Luego elimine la carpeta var con este comando en su raíz de magento2.

rm -rf var/*

Luego actualice su página de inicio y panel de administración. Esta funcionando !!!!! Guay !!!!


1

Tuve el mismo problema con los 404. Lo resolví asegurándome de que la directiva VirtualHost en Apache fuera correcta. Aquí está mi VirtualHost:

<VirtualHost *:80>
    DocumentRoot /var/www/magento2
    ServerName magento-ce-2.1.6
    <Directory "/var/www/magento2">
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

¿Y también puedes decir, qué estaba mal antes? De lo contrario, este ejemplo no será de mucha ayuda para los demás.
Fabian Schmengler


0

Tuve exactamente el mismo problema que el OP y fue simplemente porque configuré mi configuración regional en_AU, por lo que el uso del comando de implementación predeterminado solo generó el en_UScontenido. Debe agregar la configuración regional que realmente está utilizando a la EN del comando, de esta manera:

php bin/magento setup:static-content:deploy en_US en_AU

0

Probé las soluciones anteriores. Pero no me ayudó. A pesar de eso, usé los mismos comandos que mencionaron con los cambios de secuencia. Son,

  1. borrar caché, composer_home, generación, log, page_cache, tmp y view_preprocessed del directorio var

  2. ejecuta los siguientes comandos uno por uno.

indexador php bin / magento: reindex

php bin / magento cache: flush

php bin / magento setup: static-content: deploy

Espero que esto pueda ayudar a alguien como yo.


0

Deshabilitar mod_pagespeed

La velocidad de página procesa una instancia "en caché" de su contenido con una abreviatura, es decir, si este es el archivo normal.

image.css

Se establecerá de la siguiente manera.

image.pagespeed.css

Lo anterior es un ejemplo muy simple, pero ya puede ver dónde está el problema subyacente. Esto puede causar una carga de contenido estático inadecuada debido a que no se puede encontrar a través de la ruta principal, debido a que son temporales. Este es un problema de herencia con Mod_Pagespeed, por eso recomendamos mantenerlo deshabilitado.

la respuesta de un cometa rápido, y resolvió mi problema


0

Para Ubuntu 18.04 (Bionic). He utilizado los siguientes pasos para que los archivos estáticos se carguen correctamente.

Una vez completada la instalación:

Asegúrese de que el módulo apache 'rewrite' esté habilitado, de lo contrario haga lo siguiente

  • cd /etc/apache2
  • ejecutar comando a2enmod rewrite
  • sudo vi /etc/apache2/apache2.conf

Luego haga los siguientes cambios

Modificar desde:

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

a

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

Luego reinicie apache

sudo service apache2 restart

o

sudo /etc/init.d/apache2 restart

Luego cambie los permisos para <magento root director>

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

Luego despliegue el contenido estático

  • php bin/magento setup:static-content:deploy -f (-f es obligatorio si está en desarrollo env)

Luego vacíe el caché y reindexe

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

O

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

Luego acceda a su página de inicio usando

  • 127.0.0.1/your_configured_url en lugar de localhost/your_configured_url

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.