Qual é a maneira correta de trabalhar com ativos em Yii?
-
16-09-2019 - |
Pergunta
Eu noto que Yii cria estranho conjunto de diretórios (nomes como 8523d23 ou 10s89b92) no diretório ativo, e isso ainda acontece em tempo de execução. Por exemplo, uma das minhas tabelas tem mais de 10 registros, paginação chutou-in e eu tenho um novo arquivos em ativos subdiretório chamado pager.css.
Quando eu mover meu site a partir de testes para a produção, eu deveria copiar todos aqueles, ou apenas criar um vazio "ativos" do diretório, e ele será preenchido em tempo de execução?
Se eu quiser adicionar, por exemplo, um novo plugin jQuery, como devo proceder?
Por exemplo, gostaria de acrescentar jquery.charcounter.js, posso copiá-lo para ativos ou para yii/framework/web/js/source
? Se eu fizer o último, como faço para obter este .js arquivo incluído na saída da página HTML?
Solução
assets
deve ser um diretório gravável. Yii cuida dos ativos.
Ao chamar Yii::app()->assetManager->publish()
algumas folhas de estilo, imagens, scripts ou até mesmo diretórios inteiros pode ser colocado em uma pasta web-visível.
pager.css
e outros arquivos não-familiares são produzidos por widgets (CLinkPager
por exemplo) e outros componentes (como CClientScript
publica jQuery sempre que você precisar que).
Durante a implantação, esta pasta deve estar vazia, mas isso realmente não importa.
Adicionando plugins nunca deve ser feito através de pastas quadro. Você pode colocá-los tanto na dir components
e publicá-lo tempo de execução se necessário, ou em qualquer outro diretório visível conveniente (como como images
ou css
).
Atualização
Para incorporar jquery.charcounter.js
, colocá-lo no diretório components
, em seguida, chamar
Yii::app()->clientScript->registerScriptFile(
Yii::app()->assetManager->publish(
Yii::getPathOfAlias('application.components').'/jquery.charcounter.js'
),
CClientScript::POS_END
);
Em relação pasta nomes estranhos, eu firmemente acredito que eles são hashes únicos (ou parte), para que eles possam ser diferenciados se a aplicação utiliza várias extensões.
Outras dicas
Este seria resolver a consulta uma vez que oferece uma explicação detalhada para os ativos pasta: