php – 使用Gaufrette Stream Wrappers和AsseticBundle
发布时间:2020-12-13 13:09:17 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用Gaufrette Stream Wrapper告诉AsseticBundle转储项目资产的位置,但我不能让它识别它们. 这是我的config_dev.yml的knp_gaufrette部分的样子: knp_gaufrette: adapters: dev_adapter: local: directory: /vagrant/test create: true filesystem
我正在尝试使用Gaufrette Stream Wrapper告诉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',"ABCn",FILE_APPEND); return new Response(file_get_contents('gaufrette://dev_adapter/test.txt')); } 然后我像这样设置资产包配置(在config_dev.yml中): assetic: read_from: gaufrette://dev_adapter write_to: gaufrette://dev_adapter 但是,当我尝试使用控制台资产转储资产时: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
我在连接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); //} // ... } 如果您正在使用依赖项管理器,请将该命令复制到新的命令类中,注释掉必要的行. 我认为路径中不存在的任何目录/资源都是自动创建的. 例:目录的资产文件夹为空.推送到s3://bucket-name/assets/css/style.css将创建css文件夹和style.css文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |