J'ai téléchargé et installé Magento 2 à l' adresse https://github.com/magento/magento2.
Mais je reçois une erreur 404 pour les scripts et les cs situés dans http: // localhost / magento2 / pub / static /
J'ai vérifié, le moteur de réécriture Apache est activé. Mais quand même, les fichiers css et js ne se chargent pas.
Lorsque j'essaie d'accéder à un fichier directement à partir du navigateur, il donne l'exception suivante.
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}
Mon système d'exploitation est Windows 7 et j'utilise xampp server.
Réponses:
Lorsqu'il n'est pas en mode de production, Magento 2 essaiera de créer des liens symboliques pour certaines ressources statiques. Vous pouvez changer ce comportement en procédant comme suit.
Ouvrez
app/etc/di.xml
et trouvez lavirtualType name="developerMaterialization"
section. Dans cette section, vous trouverez un élémentname="view_preprocessed"
qui doit être modifié ou supprimé. Vous pouvez le modifier en changeant le contenu deMagento\Framework\App\View\Asset\MaterializationStrategy\Symlink
àMagento\Framework\App\View\Asset\MaterializationStrategy\Copy
Supprimez les fichiers sous pub / static pour vous débarrasser des liens symboliques existants. Vous voudrez peut-être faire attention à ne pas supprimer le
.htaccess
fichier.Cela devrait résoudre votre erreur avec le lien symbolique.
la source
J'ai fait face à ce problème et essayer de comprendre. Je suis d'accord avec Chris O'Toole. Je vais ajouter étape supplémentaire. Mes pas sont,
Remplacez le lien symbolique par le mot copier. Sauver.
Supprimer tous les dossiers dans pub / static. Ne supprimez pas les fichiers .htaccess et autres.
Exécutez xampp en tant qu'administrateur. Exécutez la ligne de commande en tant qu'administrateur. Courez
grunt exec:<theme name>
.Vous verrez qu'il fonctionne bien.
Ensuite, vous pouvez courir
grunt less:<theme name>
Enfin, vous pouvez courir
grunt watch
Lorsque vous modifiez moins de fichiers (_theme.less ou _extend.less), les fichiers style-l et style-m css sont automatiquement créés dans le dossier pub / static.
J'exécute magento 2.1 sous Windows 10.
la source
N'oubliez pas de mettre à jour les autorisations de fichiers après que Magento ait créé ces nouveaux fichiers statiques. Ils ne sont pas la propriété de www-data, ils donneront donc 404.
la source
Dans mon cas, ce n’était pas parce que my
app/etc/di.xml
avait,Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink
comme mentionné par @Chrish. C'est parce qu'un de mes modules avait une erreur de script dans mon.phtml
fichier. Je recommanderais de vérifier votre code dans le.phtml
fichier. Dans mon cas, le problème a été résolu en corrigeant mon fichier de scriptinitialize.phtml
.la source
J'ai trouvé important d'utiliser l'autorisation correcte pour apache avec mod_php pour les répertoires pub / static et var /. Extrait de l'article d'Alan Storm http://alanstorm.com/magento_2_adding_frontend_files_to_votre_module
Vous devriez l'exécuter dans le terminal du serveur. Cela m'a corrigé l'erreur 404 pour les scripts et les images.
ps Mais c'est pour le Linux.
la source
chmod -R 777 /path/to/magento2/pub/static /path/to/magento2/var
Je pense que la bonne façon de faire est de la ligne de commande: cd dans votre répertoire magento et lancez la commande suivante:
Vider le
var/cache
répertoire et vérifier.la source
Vient de supprimer tous les fichiers sous
pub/static/*
. Magento générera automatiquement les fichiers statiques pour vous lorsque vous chargerez une page.la source
Vous devez exécuter Xampp (apache, nginx), etc. en tant qu'administrateur pour lui permettre de créer des liens symboliques sous Windows (testé avec Windows 10).
la source