我修改了应用程序的配置并将新代码部署到生产服务器。由于该应用程序不解析配置文件并使用预编译类,因此我需要更新缓存文件。
有 app/console cache:warmup
和 app/console cache:clear
命令。但是,在调用这些命令后缓存没有被更新,所以我不得不手动删除 app/cache 文件夹。
手动删除操作非常危险,因为它不是原子操作,所以在请求期间可能会删除部分缓存,这可能导致致命错误。
如何重新加载缓存?
我修改了应用程序的配置并将新代码部署到生产服务器。由于该应用程序不解析配置文件并使用预编译类,因此我需要更新缓存文件。
有 app/console cache:warmup
和 app/console cache:clear
命令。但是,在调用这些命令后缓存没有被更新,所以我不得不手动删除 app/cache 文件夹。
手动删除操作非常危险,因为它不是原子操作,所以在请求期间可能会删除部分缓存,这可能导致致命错误。
如何重新加载缓存?
你没有传递 env
参数:app/console cache:clear --env=prod --no-debug
--env
标志,则默认为getenv('SYMFONY_ENV')
或dev
。此外,如果提供了--env=prod
,则会强制使用--no-debug
。在2.1之前,需要显式传递--no-debug
。代码如下:$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev'); $debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';
。详见https://github.com/symfony/symfony-standard/blob/master/app/console。 - Will B.sudo app/console cache:clear --env=prod --no-warmup --no-debug
--no-warmup
标志在cache:clear
完成后防止生成基于新环境的缓存。延迟(缓存生成)将在首次运行应用程序时发生。 - Will B.我相信你可以尝试执行以下命令:app/console cache:clear --no-warmup
app/console cache:clear
。 - Ascherer