Magento 2: Links simbólicos para arquivos pub / estáticos

8

Há um tempo atrás, quando eu estava trabalhando em um projeto com o Magento 2, notei que meus arquivos CSS e JavaScript pub/staticdo meu tema eram na verdade links simbólicos para os arquivos reais. Também foi quando eu executei uma setup:static-content:deployação do shell.

No entanto, recentemente migrei para um novo sistema e verifiquei o código e o banco de dados do projeto, mas agora quando implanto meu conteúdo estático, eles são cópias e não links simbólicos.

Alguma coisa mudou? Ou estou faltando alguma configuração aqui? Não é muito produtivo ter que recompilar o conteúdo estático toda vez que faço uma alteração no JS ou CSS.

Estou usando o Magento 2.0.6

Giel Berkers
fonte
Sua loja está definida no modo de desenvolvedor?
Ryan Hoerr 23/16
Sim, minha loja está definida no modo de desenvolvedor. Também tentei alternar para produção, excluir a pub/staticpasta-e reativar o modo de desenvolvedor, mas sem sucesso. Todos os arquivos são copiados em vez de vinculados.
Giel Berkers

Respostas:

10

Provavelmente você excluiu todos os seus arquivos na pasta pub em algum momento, incluindo:

  1. /pub/static.php
  2. /pub/static/.htaccess

Quando o arquivo estático que você está procurando não é encontrado, ele redireciona a solicitação para uma pasta acima para o arquivo static.php, que inicia o mecanismo de fallback e o puxa para baixo como um link simbólico.

Para resolver o problema, copie a cópia nova do Magento 2.x que você está executando e copie esses arquivos para sua pasta pub.

Timik
fonte
10

Abra seu di.xml ( app / etc / di.xml ) e verifique na linha 580 algo como este (estou usando o 2.0.6 e o ​​modo está definido para o desenvolvedor): Como você pode ver, o view_preproccessed possui um link simbólico e o comando o padrão está definido para copiar.

<virtualType name="developerMaterialization" type="Magento\Framework\App\View\Asset\MaterializationStrategy\Factory">
    <arguments>
        <argument name="strategiesList" xsi:type="array">
            <item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>
            <item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
        </argument>
    </arguments>
</virtualType>

Além disso, dê uma olhada aqui Magento 2 404 error para scripts e css, especialmente a resposta de Chris O'Toole.

Samir Shaban
fonte