【发布时间】:2016-01-13 01:08:43
【问题描述】:
我正在使用 Laravel Elixir (5.2) 执行一些 gulp 任务,例如连接文件然后对其进行版本控制。
当我对它们进行版本控制时,默认情况下,它们会输出到我的公用文件夹中的“/build”目录中。我不希望这种情况发生 - 我希望它们在没有构建文件夹的情况下上一层。
查看 Elixir 的源代码,我可以看到您可以将目录作为另一个参数传递给 version 方法,文件将在那里创建。
但是,当您尝试运行应用程序时,它会在构建目录中查找清单时引发异常。
laravel\framework\src\Illuminate\Foundation\helpers.php的第295行有如下函数,在刀片模板中调用该函数获取版本化文件的文件名路径:
function elixir($file)
{
static $manifest = null;
if (is_null($manifest)) {
$manifest = json_decode(file_get_contents(public_path('build/rev-manifest.json')), true);
}
if (isset($manifest[$file])) {
return '/build/'.$manifest[$file];
}
throw new InvalidArgumentException("File {$file} not defined in asset manifest.");
}
我可以通过删除构建目录的硬编码来解决我的问题。 2个问题: 1. 这是 Laravel 的 bug 吗? 2. 将公共资产放入'build'目录是否正常?
【问题讨论】:
-
遇到完全相同的问题...看起来像一个错误。