在Heroku上部署时查看未找到

时间:2017-02-21 20:01:30

标签: php laravel heroku laravel-5 blade

我有一个完全在本地加载的页面。

enter image description here

我将相同的代码部署到Heroku,我得到了这个

enter image description here

我无法真正检查实际文件是否存在,因为Heroku不允许使用SFTP。

但我在本地有这个档案。

enter image description here

我需要清除缓存还是什么?

我看到了什么?

我试过

heroku run php artisan view:clear

我得到了

Running php artisan view:clear on ⬢ umaket-technology... up, run.6160 (Free)
Compiled views cleared!

结果相同!

5 个答案:

答案 0 :(得分:4)

我不能代表Heroku说话,但是当我在本地开发(Mac)并推送到我的服务器(Debian)时,我遇到了类似的问题。该问题最终成为区分大小写的视图名称,Mac忽略了它们,但Debian没有这样,因此无法找到视图。

希望能做到这一点

答案 1 :(得分:0)

像@WhereisJefe一样说:

检查你的观点

@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 : Stackoverflows : stackoverflow

这就是为什么你会在heroku上出现这种错误的原因