gpt4 book ai didi

php - 将 Gaufrette Stream Wrappers 与 AsseticBundle 结合使用

转载 作者:可可西里 更新时间:2023-11-01 12:39:50 27 4
gpt4 key购买 nike

我正在尝试使用 Gaufrette Stream Wrapper 告诉 AsseticBundle 将项目 Assets 转储到哪里,但我无法让它识别它们。

这是我的 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'));
}

然后我像这样设置 Assets 包配置(也在 config_dev.yml 中):

assetic:
read_from: gaufrette://dev_adapter
write_to: gaufrette://dev_adapter

但是,当我尝试使用 console assetic:dump --env=dev 转储 Assets 时,出现此错误:

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-bundle: 2.3.0
knplabs/knp-gaufrette-bundle: 0.1.7

最佳答案

我在连接 Amazon 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 文件。

关于php - 将 Gaufrette Stream Wrappers 与 AsseticBundle 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24262385/

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