我已经在Ubuntu中下载了Laravel网站(在composer update
之后下载),尝试访问该网站时出现此错误:
is_dir()期望参数1为有效路径,并给出字符串
我发现问题出在/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php
,其代码为:
protected function loadViewsFrom($path, $namespace){
if (is_array($this->app->config['view']['paths'])) {
foreach ($this->app->config['view']['paths'] as $viewPath) {
if (is_dir($appPath = $viewPath.'/vendor/'.$namespace)) {
$this->app['view']->addNamespace($namespace, $appPath);
}
}
}
$this->app['view']->addNamespace($namespace, $path);
}
$appPath
是字符串yes,但是不是此函数的string类型参数吗?
如果像这样var_dump()
那样将var_dump($viewPath.'/vendor/'.$namespace);exit
放在is_dir检查之前,我将获得两条路径:
string(74)“ / mnt / e / xampp / htdocs / project_folder / resources / views / vendor / notifications”
string(71)“ / mnt / e / xampp / htdocs / project_folder / resources / views / vendor / pagination”
views文件夹中的这两个文件夹不存在。没关系,如果我创建它们,但是我认为创建它们是错误的。 我不明白错误在哪里。
与我相同:
$appPath = $viewPath.'/vendor/'.$namespace;
$cleaned = strval(str_replace("\0", "", $appPath));
if (is_dir($cleaned)) {
$this->app['view']->addNamespace($namespace, $appPath);
}