我在测试我继承的Laravel应用时遇到了问题。
通常标记为" public" 的文件夹已重命名为" html" 。
应用程序本身运行正常,但当运行Behat测试时,仍然会查找公用文件夹。我只是复制" html" 正在努力它文件并将其重命名为公共,但我想解决此问题,以便我可以让其他一些同事测试此应用。
我已经查看了Behat文档,但无法找到它。我也搜索了相当多的内容,但没有找到解决它的任何内容。
任何人都知道如何设置此路径,而不是寻找名为" public"我可以更改它以查找名为" html。"
的文件夹我得到的确切错误是
Warning: file_get_contents(/Library/WebServer/Documents/myApp/myApp/public/build/rev-manifest.json): failed to open stream: No such file or directory in /Library/WebServer/Documents/thirdspace-app/thirdspace/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php line 668
上述路径中的公开需要 html 。
该错误中引用的代码如下所示
if ( ! function_exists('elixir'))
{
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.");
}
}
我真的不想改变它,因为我认为这会影响应用程序本身。我只是想发送测试寻找HTML而不是公开。我真的只是想确保解决方案只影响测试,而不是应用程序本身。
答案 0 :(得分:1)
这使用Laravel辅助函数public_path()
,它总是返回一个期望名为public
的目录的路径。
有几种不同的方法可以覆盖它,但这可能是最简单的方法。为了在Behat之前运行,请在bootstrap/app.php
:
$app->bind('path.public', function() {
return base_path().'/html';
});
答案 1 :(得分:0)