Después de la actualización de Magento 2.1.0 a Magento 2.1.3 (usando el compositor), el contenido estático ya no se carga. En la consola del navegador puedo ver que todos los archivos no están disponibles (404):
No veo directorios con el nombre version*
en el pub
directorio.
Lo que ya hice pero no ayudó:
- establecer todos los permisos a
777
, pero sin éxito. - caché limpio
- retiró el
pub/static/*
- contenido estático regenerado pocas veces
- reemplazó el
.htaccess
archivo (en elpub/static
directorio) con el archivo de un repositorio oficial.
Otra informacion:
mod_rewrite
está habilitadoFollowSymLinks
está permitido (en la configuración de host predeterminada y local.htaccess
)- Esta configuración funcionó bien con Magento 2.1.0 antes de la actualización a la 2.1.3
pub/static
es escribible
¿Alguna sugerencia?
magento-2.1
magento-2.1.3
404
static-content
Siarhey Uchukhlebau
fuente
fuente
Respuestas:
El problema principal fue causado por el trabajo incorrecto de reescritura (como dijo @Marius). No había
RewriteBase
en mi directoriopub/static/
y Apache no pudo encontrar los archivos porque los buscó desde la carpeta raíz. Después de agregar:RewriteBase /pub/static
todo comienza a funcionar.Cómo funcionó:
por esta dirección:
la reescritura debería funcionar:
como la línea comenzó desde la carpeta raíz:
no ha funcionado y no pudo redirigir al archivo, necesario.
Reescribir sin base:
Reescribe con base:
Aquí una parte de mi
.htaccess
archivo depub/static
(reescribe):Cómo deshabilitar el versionado de archivos estáticos:
Si no desea utilizar versiones de archivos estáticos, puede desactivar esta función en el área de administración de Magento:
Es posible cambiar esta configuración para el alcance predeterminado utilizando la siguiente consulta MySQL :
Luego ejecute el siguiente comando para borrar una caché de configuración:
PD: Mi respuesta es real para los usuarios de apache2. Si está utilizando NGINX, vea esta respuesta (por @ kevin-javitz)
fuente
dev/static/sign
en existe, entonces insértelo.INSERT INTO core_config_data (scope, scope_id, path, value) VALUES ('default', 0, 'dev/static/sign', '0')
sudo a2enmod rewrite
.Si está ejecutando Nginx, aquí está la solución. Probablemente tenga su propio archivo conf, necesita actualizar la parte / static / con esto, ellos han actualizado parte de él específicamente: # Elimine la firma de los archivos estáticos que se utilizan para superar la sección de caché del navegador:
fuente
RewriteRule ^version.+?/(.+)$ $1 [L]
Vaya a la base de datos e inserte una fila en la tabla core_config_data:
fuente
No debería haber una
version*
carpeta en lastatic
carpeta.Esto probablemente ocurre porque no tiene habilitado mod_rewrite en su instancia.
La ruta
pub/static/version1234/some/asset.js
debe reescribirsepub/static/some/asset.js
. Lo de la versión está ahí solo para la caducidad de la memoria caché del navegador.fuente
mod_rewrite
y está habilitado:[root@web www]# httpd -M | grep "rewrite" rewrite_module (shared) Syntax OK
en el .htaacess también está habilitadoFollowSymLinks
esté permitido. Esto me sucedió después de instalar la última versión de github y tuve un problema con mod_rewrite y con FollowSymLinks.FollowSymLinks
se establece comoOptions +FollowSymLinks
y no hubo ningún problema con la misma configuración antes de actualizar :(Parece que la versión 2.1.3 supone que el valor predeterminado para
Stores => Configuration => Developer => Static Files Settings => Sign Static Files
está establecido en Sí.Entonces, en lugar de cambiar las reescrituras, es posible establecer esta función en No.
Si no es posible hacer esto desde el administrador, porque el administrador no puede cargar los activos frontend, cambie / agregue esta configuración en la
core_config_data
tabla:Este problema también se observa en Github: https://github.com/magento/magento2/issues/7869
fuente
Si estás usando apache. No debe eliminar .htaccess de pub / static. Puede obtener un reemplazo aquí.
fuente
RewriteBase
.