gpt4 book ai didi

php - 如何将 Assets 版本添加到 css 和 js?

转载 作者:行者123 更新时间:2023-12-04 18:15:07 24 4
gpt4 key购买 nike

我希望assetic将压缩的js和css输出到这样的东西:
v2.3.1/css/whatever.css

目前,这就是我将 css 和 js 转储到生产环境的方式:$ php app/console assetic:dump --env=prod --no-debug .但是他们被转储到 css/和 js/中,没有版本。

我已阅读 this但它似乎只指图像,而不是 css/js。

这样做的一个重要原因是缓存破坏/无效。

最佳答案

是的,已知问题...在我们的生产工作流程中,我们最终在 bin/vendors 中遇到了这样的 block 脚本:

if (in_array('--env=dev', $argv)) {
system(sprintf('%s %s assets:install --symlink %s', $interpreter, escapeshellarg($rootDir . '/app/console'), escapeshellarg($rootDir . '/web/')));
system(sprintf('%s %s assetic:dump --env=dev', $interpreter, escapeshellarg($rootDir . '/app/console')));
system(sprintf('%s %s myVendor:assets:install --symlink ', $interpreter, escapeshellarg($rootDir . '/app/console')));
} else {
system(sprintf('%s %s assets:install %s', $interpreter, escapeshellarg($rootDir . '/app/console'), escapeshellarg($rootDir . '/web/')));
system(sprintf('%s %s assetic:dump --env=prod --no-debug', $interpreter, escapeshellarg($rootDir . '/app/console')));
system(sprintf('%s %s myVendor:assets:install ', $interpreter, escapeshellarg($rootDir . '/app/console')));
}

如您所见,我们定义了控制台命令,它在安装和转储 Symfony 的 Assets 后将 Assets 安装到 web 文件夹中。在 MyVendorCommand脚本我们做这样的事情:
$version = $this->getContainer()->getParameter('your_version_parameter');
$assetsInstallCommand = $this->getApplication()->find('assets:install');

$commandOptions = $input->getOptions();

$assetsInstallArguments = array(
'command' => 'assets:install',
'target' => 'web/version-' . $version,
'--symlink' => $commandOptions['symlink']
);

$assetsInstallInput = new ArrayInput($assetsInstallArguments);
$returnCode = $assetsInstallCommand->run($assetsInstallInput, $output);

关于php - 如何将 Assets 版本添加到 css 和 js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11895299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com