Situation: je lance des essais gratuits de Magento 2 et j'ai un espace HD limité sur le VPS. Pour cette raison, pour réduire l'espace HD, je souhaite que Magento crée un lien symbolique entre les fichiers en mode par défaut ou en mode production. J'ai remarqué qu'une installation par défaut de Magento 2 fait environ 420 Mo une fois que le site est lancé, il passe à environ 770 Mo, donc 350 Mo de fichiers sont copiés.
J'ai modifié: la ligne app / etc / di.xml:
<item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
à
<item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>
Cela fonctionne bien et le site créera correctement les liens symboliques même en mode par défaut. Cependant, le problème est que le css n'est pas créé ou que js-translation.json les fichiers qu'il doit créer mais ne le sont pas:
/pub/static/version1488209436/frontend/Magento/luma/en_US/css/styles-m.css
/pub/static/version1488209436/frontend/Magento/luma/en_US/css/styles-l.css
/pub/static/version1488209436/frontend/Magento/luma/en_US/css/print.css
/pub/static/version1488209436/frontend/Magento/luma/en_US/js-translation.json
La question est donc: comment faire pour que Magento génère également ces fichiers en mode par défaut ou en mode production et en utilisant des liens symboliques?
la source
Réponses:
app/etc/di.xml
: ajouter un nouvel élément àstategiesList
:En supposant que vous êtes en mode développeur, supprimez simplement le contenu de
pub/static
et accédez à votre page dans le navigateur - magento régénérera le contenu statique.a fonctionné pour moi dans Magento 2.1.4 (styles-m.css a été généré et d'autres fichiers ont un lien symbolique).
toute la magie opère dans
vendor/magento/framework/App/View/Asset/MaterializationStrategy/Factory.php
:Magento parcourt simplement les
stategiesList
éléments et utilise la première stratégie qui prend en charge l'actif.Comment le faire fonctionner en mode production?
Avertissement: ce hack contient l'édition de fichiers de base. il faut se méfier.
tous testés sur magento 2.1.4
Stores > Configuration > Advanced > Developer > Static Files Settings > No
éditez
vendor/magento/framework/App/StaticResource.php
et faiteslaunch
ressembler la fonction à ceci:supprimer le contenu
pub/static
et visiter l'URL de votre boutique dans un navigateur.la source
<item name="asset" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
?Lorsqu'il n'est pas en mode production, Magento 2 essaiera de créer des liens symboliques pour certaines ressources statiques. Vous pouvez modifier ce comportement en procédant comme suit.
Ouvrez l'application / etc / di.xml et recherchez la section virtualType name = "developerMaterialization". Dans cette section, vous trouverez un nom d'élément = "view_preprocessed" qui doit être modifié ou supprimé. Vous pouvez le modifier en changeant le contenu de Magento \ Framework \ App \ View \ Asset \ MaterializationStrategy \ Symlink en Magento \ Framework \ App \ View \ Asset \ MaterializationStrategy \ Copy
Supprimez les fichiers sous pub / static. Veuillez ne pas supprimer le fichier .htaccess.
la source