php – assetic – 无法写资产
发布时间:2020-12-13 16:35:57 所属栏目:PHP教程 来源:网络整理
导读:这是我的目录结构(这只是一个测试项目): stan@mypc:/generate_assets$sudo tree -L 3 -p.├── [drwxr-xr-x] assets│ └── [drwxr-xr-x] css│ ├── [-rw-r--r--] test1.css│ └── [-rw-r--r--] test2.css├── [-rw-r--r--] composer.json├──
这是我的目录结构(这只是一个测试项目):
stan@mypc:/generate_assets$sudo tree -L 3 -p . ├── [drwxr-xr-x] assets │ └── [drwxr-xr-x] css │ ├── [-rw-r--r--] test1.css │ └── [-rw-r--r--] test2.css ├── [-rw-r--r--] composer.json ├── [-rw-r--r--] composer.lock ├── [drwxrwxrwx] public ├── [-rwxr-xr-x] run └── [drwxr-xr-x] vendor ....skipping... 这是我的简单脚本(‘run’文件),它应该生成资产: #!/usr/bin/env php <?php //loading composer's autoload chdir(__DIR__); if (file_exists('vendor/autoload.php')) { include 'vendor/autoload.php'; } use AsseticAssetAssetCollection; use AsseticFactoryAssetFactory; use AsseticAssetFileAsset; use AsseticAssetGlobAsset; use AsseticFilterLessFilter; use AsseticFilterCssMinFilter; use AsseticAssetWriter; use AsseticAssetManager; //Asset manager $am = new AssetManager(); //Add all css files $css = new GlobAsset('assets/css/*.css',array(new CssMinFilter())); $am->set('basecss',$css); // Dumping assets into public $writer = new AssetWriter('public'); $writer->writeManagerAssets($am); 所以 – 我预计来自资产/ css的css文件将被组合,被细分并转储到名为“basecss.css”的公共目录中.这是我得到的例外: PHP Fatal error: Uncaught exception 'RuntimeException' with message 'Unable to write file public/' in /generate_assets/vendor/kriswallsmith/assetic/src/Assetic/AssetWriter.php:106 Stack trace: #0 /generate_assets/vendor/kriswallsmith/assetic/src/Assetic/AssetWriter.php(65): AsseticAssetWriter::write('public/','*{color:green}?...') #1 /generate_assets/vendor/kriswallsmith/assetic/src/Assetic/AssetWriter.php(54): AsseticAssetWriter->writeAsset(Object(AsseticAssetGlobAsset)) #2 /generate_assets/run(31): AsseticAssetWriter->writeManagerAssets(Object(AsseticAssetManager)) #3 {main} thrown in /generate_assets/vendor/kriswallsmith/assetic/src/Assetic/AssetWriter.php on line 106 所以 – 似乎assetic试图转储名为’public’而不是’public / basecss.css’的文件?任何帮助? 附:解析度: 好.洙.显然我必须跑 $css->setTargetPath('css_file_name.css'); 然后它工作…
从文档中不完全清楚,但在
Dumping Assets to static files部分中提到
$writer->writeManagerAssets($am); “将利用资产的目标路径”.所以是的,你建议在编写资产之前设置目标路径可以解决问题: $css->setTargetPath('css_file_name.css'); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |