我有一个完全在本地加载的页面。
我将相同的代码部署到Heroku,我得到了这个
我无法真正检查实际文件是否存在,因为Heroku不允许使用SFTP。
但我在本地有这个档案。
我需要清除缓存还是什么?
我看到了什么?
我试过
heroku run php artisan view:clear
我得到了
Running php artisan view:clear on ⬢ umaket-technology... up, run.6160 (Free)
Compiled views cleared!
结果相同!
答案 0 :(得分:4)
我不能代表Heroku说话,但是当我在本地开发(Mac)并推送到我的服务器(Debian)时,我遇到了类似的问题。该问题最终成为区分大小写的视图名称,Mac忽略了它们,但Debian没有这样,因此无法找到视图。
希望能做到这一点
答案 1 :(得分:0)
检查你的观点
@extends('check here case')
检查您的控制器
return view('check here case')
答案 2 :(得分:0)
我的项目在本地系统上运行正常。
但是当我部署在服务器上时遇到了这个问题。
感谢 JeffBeltran
花了3 4个小时后,我得到了错误。
我的错误只是 dir 名称是 H ,并且在我使用 home 的路径中,它在我的本地环境下正常工作。 我只是将 h 更改为 H 并可以正常使用
错误代码
Route::get('/home', function(){
return view('home.index');
更新的代码没有错误
Route::get('/home', function(){
return view('Home.index');
});
答案 3 :(得分:0)
虽然这个问题看起来很老了,但似乎仍然没有令人满意的答案。
我有过类似的经历,并且能够在此处找到解决方案:https://laracasts.com/discuss/channels/laravel/heroku-laravel-views-not-found。
总结; 不要在部署后的脚本中运行任何缓存
就我而言,我的 composer.json
文件中有以下内容:
"post-install-cmd": [
"@php artisan clear-compiled",
"@php artisan cache:clear",
"@php artisan optimize",
"@php artisan migrate --force"
]
行"@php artisan optimize" 是罪魁祸首。
所以我把它改成了:
"post-install-cmd": [
"@php artisan clear-compiled",
"@php artisan cache:clear",
"@php artisan config:clear",
"@php artisan migrate --force"
]
这为我解决了这个问题,我希望它也适用于可能遇到相同问题的任何其他人。
答案 4 :(得分:0)
看起来没有明确的答案,但是来自 laravel 8 以及我遇到此错误的次数,通常是因为我的刀片文件名与我在控制器中的名称不同,特别是在view()
辅助函数。例如:
如果我的刀片文件是“Stackoverflow.blade.php
”,那么在我的控制器中,我有类似 return view('stackoverflow');
的东西,例如,这将抛出在 heroku 上找不到的错误。原因是大小写不同。
S
: Stackoverflow
和 s
: stackoverflow
这就是为什么你会在heroku上出现这种错误的原因