Situação: Estou executando alguns testes gratuitos do Magento 2 e tenho espaço HD limitado no VPS. Por esse motivo, para reduzir o espaço em HD, quero que o Magento vincule os arquivos no modo padrão ou de produção. Percebi que uma instalação padrão do Magento 2 é de cerca de 420mb, uma vez que o site é executado, ele vai para cerca de 770mb, então 350mb disso são arquivos copiados.
Modifiquei: app / etc / di.xml line:
<item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
para
<item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>
Isso funciona bem e o site criará corretamente os links simbólicos, mesmo quando no modo padrão. No entanto, o problema é que o css não é criado ou o js-translation.json os arquivos que ele deve criar, mas não são:
/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
Portanto, a pergunta é: como faço para o Magento também gerar esses arquivos no modo padrão ou de produção e usando links simbólicos?
fonte
Respostas:
app/etc/di.xml
: adicione um novo item astategiesList
:Supondo que você esteja no modo de desenvolvedor, exclua o conteúdo
pub/static
e vá para a sua página no navegador - o magento irá gerar novamente o conteúdo estático.trabalhou para mim no Magento 2.1.4 (styles-m.css foi gerado e outros arquivos foram linkados).
toda a mágica acontece em
vendor/magento/framework/App/View/Asset/MaterializationStrategy/Factory.php
:O Magento apenas percorre
stategiesList
itens e usa a primeira estratégia que suporta o ativo.Como fazê-lo funcionar no modo de produção?
Isenção de responsabilidade: este truque contém edição de arquivo principal. cuidado.
todos testados no magento 2.1.4
Stores > Configuration > Advanced > Developer > Static Files Settings > No
edite
vendor/magento/framework/App/StaticResource.php
e faça com que alaunch
função fique assim:exclua o conteúdo
pub/static
e visite o URL da sua loja em um navegador.fonte
<item name="asset" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
?Quando não estiver no modo de produção, o Magento 2 tentará criar links simbólicos para alguns recursos estáticos. Você pode alterar esse comportamento fazendo o seguinte.
Abra o aplicativo / etc / di.xml e localize a seção virtualType name = "developerMaterialization". Nessa seção, você encontrará um nome de item = "view_preprocessed" que precisa ser modificado ou excluído. Você pode modificá-lo alterando o conteúdo de Magento \ Framework \ App \ View \ Asset \ MaterializationStrategy \ Symlink para Magento \ Framework \ App \ View \ Asset \ MaterializationStrategy \ Copy
Exclua os arquivos em pub / static. Por favor, não apague o arquivo .htaccess.
fonte