php - 如何确定 Laravel 7.x 期望在哪些路径中找到我的视图文件?

我的代码相当简单:

return response()->view("OneTimeLink", [ 'data' => $data ]);

我收到以下错误:

InvalidArgumentException: View [OneTimeLink] not found. in file /app/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php on line 137

在调试它时,我知道它应该有一个 .blade.php 扩展名。我重命名了文件,重建了 docker 映像,我得到了同样的错误。

我尝试过使用相对路径和绝对路径,并带有适当的(和 Windows 的)斜杠。总是同样的错误(不过,它会修改错误消息以表明它正在观察我指定的路径)。

如果我只是输出一个 json'ed getcwd() 它告诉我它正在 /app/public 目录中工作(我不知道这是否正常)。所以我也尝试使用“../Http/Resources/Views/OneTimeLink”路径,结果相同。毫无疑问,我搞砸了视图的放置位置,这是 Laravel 实际上不会费心检查的路径,但我无法确定它想在哪里找到这些视图。

是否有一种调试技术可以揭示它正在寻找的位置,或者有指定应该定位在哪里的文档?在 docker 容器内,artisan 声称 Laravel 7.30.4。

回答1

app/config 目录中,应该有一个“view.php”文件。这包括一个可能只包含一个条目的“路径”数组:

resource_path('views'),

根据注释默认包含标准位置,不需要添加。

resource_path() 函数也是一种尝试找出它可能在哪里寻找这些的好方法。我在返回的内容中包含了一个调试语句,并得到了以下 value:

/app/resources/temp

这条路径看起来有点奇怪,因为我希望所有重要的东西都在 /app/Http/resources 之类的路径中......我搞砸了我的 Dockerfile 并将其复制到 /app 中。所以一切都需要一个 /app/app 前缀,扔掉视图,天知道还有什么。

相似文章

go - golang 如何从字符串中查找表情符号?

我想查找表情符号是否存在并替换为字符串(HTMLunicode)。(符文到字符串)例如,这是句子“我喜欢你哈哈哈😀你好。”这就是结果。“我喜欢你哈哈哈😀你好。”表情符号和表情符号位置是随机的。我将...