Après la mise à niveau de Magento 2.1.0 vers Magento 2.1.3 (en utilisant le compositeur), le contenu statique ne se charge plus. Dans la console du navigateur, je peux voir que tous les fichiers ne sont pas disponibles (404):
Je ne vois pas de répertoires avec le nom version*
dans le pub
répertoire.
Ce que j'ai déjà fait mais cela n'a pas aidé:
- définissez toutes les autorisations sur
777
, mais sans succès. - cache nettoyé
- Enlevé le
pub/static/*
- contenu statique régénéré plusieurs fois
- remplacé le
.htaccess
fichier (dans lepub/static
répertoire) par le fichier d'un référentiel officiel.
Une autre info:
mod_rewrite
est autoriséFollowSymLinks
est autorisé (dans la configuration d'hôte par défaut et local.htaccess
)- Cette configuration a bien fonctionné avec Magento 2.1.0 avant la mise à jour vers la 2.1.3
pub/static
est accessible en écriture
Aucune suggestion?
magento-2.1
magento-2.1.3
404
static-content
Siarhey Uchukhlebau
la source
la source
Réponses:
Le problème principal était dû au travail de réécriture incorrect (comme l'a dit @Marius). Il n'y
RewriteBase
en avait pas dans mon répertoirepub/static/
et Apache n'a pas pu trouver les fichiers car ils les ont recherchés dans le dossier racine. Après avoir ajouté:RewriteBase /pub/static
tout commence à fonctionner.Comment cela a fonctionné:
par cette adresse:
la réécriture devrait fonctionner:
comme la ligne a commencé à partir du dossier racine:
cela n'a pas fonctionné et n'a pas pu rediriger vers le fichier, nécessaire.
Réécrire sans base:
Réécrire avec la base:
Voici une partie de mon
.htaccess
dossier dupub/static
(réécrit):Comment désactiver la version des fichiers statiques:
Si vous ne souhaitez pas utiliser de version de fichiers statiques, vous pouvez désactiver cette fonctionnalité dans la zone d'administration de Magento:
Il est possible de modifier ce paramètre pour la portée par défaut à l'aide de la requête MySQL suivante :
Exécutez ensuite la commande suivante pour effacer un cache de configuration:
PS: Ma réponse est réelle pour les utilisateurs d'apache2. Si vous utilisez NGINX, voyez cette réponse (par @ kevin-javitz)
la source
dev/static/sign
existe, insérez-le.INSERT INTO core_config_data (scope, scope_id, path, value) VALUES ('default', 0, 'dev/static/sign', '0')
sudo a2enmod rewrite
.Si vous utilisez Nginx, voici le correctif. Vous avez probablement votre propre fichier conf, vous devez mettre à jour la partie / statique / avec cela, ils en ont mis à jour une partie spécifiquement: # Supprimez la signature des fichiers statiques qui est utilisée pour surmonter la section de cache du navigateur:
la source
RewriteRule ^version.+?/(.+)$ $1 [L]
Accédez à la base de données et insérez une ligne dans la table core_config_data:
la source
Il ne devrait pas y avoir de
version*
dossier dans lestatic
dossier.Cela se produit très probablement car vous n'avez pas activé mod_rewrite dans votre instance.
Le chemin
pub/static/version1234/some/asset.js
doit être réécritpub/static/some/asset.js
. La version n'est là que pour l'expiration du cache du navigateur.la source
mod_rewrite
et il est activé:[root@web www]# httpd -M | grep "rewrite" rewrite_module (shared) Syntax OK
dans le .htaacess, il est également activéFollowSymLinks
est autorisé. Cela m'est arrivé après avoir installé la dernière version de github et j'ai eu un problème avec le mod_rewrite et avec les FollowSymLinks.FollowSymLinks
est définie commeOptions +FollowSymLinks
et il n'y avait aucun problème avec la même configuration avant la mise à jour :(Il semble que la version 2.1.3 suppose la valeur par défaut pour
Stores => Configuration => Developer => Static Files Settings => Sign Static Files
est définie sur Oui.Ainsi, au lieu de modifier les réécritures, il est possible de définir cette fonction sur Non.
S'il n'est pas possible de le faire à partir de l'administrateur, car l'administrateur ne parvient pas à charger les actifs frontaux, modifiez / ajoutez ce paramètre dans le
core_config_data
tableau:Ce problème est également noté sur Github: https://github.com/magento/magento2/issues/7869
la source
Si vous utilisez apache. Vous ne devez pas supprimer le .htaccess de pub / static. Vous pouvez obtenir un remplacement ici.
la source
RewriteBase
.