我试图使用一个Gaufrette包装器来告诉AsseticBundle将项目资产转储到哪里,但我无法让它识别它们。
这是我的config_dev.yml的knp_gaufrette部分的样子:
knp_gaufrette:
adapters:
dev_adapter:
local:
directory: /vagrant/test
create: true
filesystems:
dev_adapter:
adapter: dev_adapter
stream_wrapper: ~我使用一个简单的操作测试了包装器,以确保它被正确注册,并且运行良好:
public function thanksAction()
{
file_put_contents('gaufrette://dev_adapter/test.txt', "ABC\n", FILE_APPEND);
return new Response(file_get_contents('gaufrette://dev_adapter/test.txt'));
}然后,我像这样设置assetic包配置(也是在config_dev.yml中):
assetic:
read_from: gaufrette://dev_adapter
write_to: gaufrette://dev_adapter但是,当我尝试使用console assetic:dump --env=dev转储资产时,我得到了这个错误:
Dumping all dev assets.
Debug mode is on.
10:53:28 [dir+] gaufrette://dev_adapter/css
[RuntimeException]
Unable to create directory gaufrette://dev_adapter/css
assetic:dump [--watch] [--force] [--period="..."] [write_to]更多信息:
symfony/symfony: 2.5.0
symfony/assetic-捆绑包: 2.3.0
knplabs/knp-gaufrette-捆绑包: 0.1.7
发布于 2014-09-14 04:12:30
我在连接亚马逊S3流包装器时也遇到了同样的问题。
我最后的解决方案是注释掉对mkdir()的调用以及对它的返回值Assetic的DumpCommand的检查。
private function doDump(AssetInterface $asset, OutputInterface $stdout)
{
// ...
//if (false === @mkdir($dir, 0777, true)) {
// throw new \RuntimeException('Unable to create directory '.$dir);
//}
// ...
}如果您使用的是依赖项管理器,请将命令复制到新的命令类中,注释掉必要的行。
我认为路径中不存在的任何目录/资源都是自动创建的。
示例:目录中有一个空的assets文件夹。按下s3://bucket-name/assets/css/style.css将创建css文件夹和style.css文件。
https://stackoverflow.com/questions/24262385
复制相似问题